C# Converter String para Data
-
C# Programa para converter
stringemDateTimeutilizandoConvert.ToDateTime() -
C# Programa para converter
stringemDateTimeutilizandoDateTime.Parse() -
C# Programa para converter
stringem umDateTimeutilizandoDateTime.ParseExact() - Conclusão:
Na maioria dos casos, obtemos uma data na forma de um string e queremos usar dia, mês e ano individualmente. Não se preocupe, em C#, para converter uma string em um objeto DateTime, utilizamos uma classe pré-definida chamada DateTime.
Há vários métodos para converter uma string em DateTime em C#, mas aqui, vamos elaborar apenas três métodos com exemplos em execução. Estes métodos são Convert.ToDateTime(), DateTime.Parse()e DateTime.ParseExact().
C# Programa para converter string em DateTime utilizando Convert.ToDateTime()
A sintaxe correta do Convert.ToDateTime() é
Convert.ToDateTime(dateTobeConverted);
Convert.ToDateTime(dateTobeConverted, cultureInfo);
Deve-se observar aqui que se você não estiver fornecendo informações culturais, então, por padrão, o compilador verá nossa seqüência de datas como mês/dia/ano. CultureInfo é uma classe C# no namespace System.Globalization que fornece informações sobre uma cultura específica.
using System;
public class Conversion {
public static void Main() {
string CurrentDate = "06/04/2020";
// Use of Convert.ToDateTime()
DateTime DateObject = Convert.ToDateTime(CurrentDate);
Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
DateObject.Year);
}
}
Resultado:
The Date is : 4 6 2020
Agora vamos implementá-la passando o objeto CultureInfo como parâmetro.
using System;
using System.Globalization;
public class Conversion {
public static void Main() {
string CurrentDate = "06/04/2020";
// Creating new CultureInfo Object
// You can use different cultures like French, Spanish etc.
CultureInfo Culture = new CultureInfo("en-US");
// Use of Convert.ToDateTime()
DateTime DateObject = Convert.ToDateTime(CurrentDate, Culture);
Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
DateObject.Year);
}
}
Resultado:
The Date is : 4 6 2020
Se mudarmos o CultureInfo para nl-NL, o mês e o dia serão trocados.
using System;
using System.Globalization;
public class Conversion {
public static void Main() {
string CurrentDate = "06/04/2020";
CultureInfo Culture = new CultureInfo("nl-nl");
DateTime DateObject = Convert.ToDateTime(CurrentDate, Culture);
Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
DateObject.Year);
}
}
Resultado:
The Date is : 6 4 2020
C# Programa para converter string em DateTime utilizando DateTime.Parse()
A sintaxe de DateTime.Parse() é,
DateTime.Parse(dateTobeConverted);
DateTime.Parse(dateTobeConverted, cultureInfo);
O mesmo acontece com o método DateTime.Parse(), se não estamos fornecendo informações culturais como argumento, então, por padrão, nosso sistema a verá como mês/dia/ano.
Se o valor da string a ser convertida for null, então ele retornará ArgumentoNullException, que deve ser manipulado utilizando o bloco try-catch.
using System;
public class Conversion {
public static void Main() {
string CurrentDate = "06/04/2020";
// Use of DateTime.Parse()
DateTime DateObject = DateTime.Parse(CurrentDate);
Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
DateObject.Year);
}
}
Resultado:
The Date is : 4 6 2020
C# Programa para converter string em um DateTime utilizando DateTime.ParseExact()
A sintaxe de DateTime.ParseExact() é,
DateTime.ParseExact(dateTobeConverted, dateFormat, cultureInfo);
DateTime.ParseExact() é o melhor método para converter uma string para DateTime. Neste método, passamos o formato da data como um argumento. Isto facilita ao usuário realizar exatamente a conversão.
Aqui nós passamos nulo como parâmetro no lugar da informação da cultura porque é um tópico totalmente novo e leva tempo para entender isso.
using System;
public class Conversion {
public static void Main() {
string CurrentDate = "06/04/2020";
// Use of DateTime.ParseExact()
// culture information is null here
DateTime DateObject = DateTime.ParseExact(CurrentDate, "dd/MM/yyyy", null);
Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
DateObject.Year);
}
}
Resultado:
The Date is : 6 4 2020
Conclusão:
Há muitos métodos para converter um string para DateTime em C#. Já discutimos alguns deles. O melhor método para converter uma string para DateTime é DateTime.ParseExact().