C# Converter String para Data
-
C# Programa para converter
string
emDateTime
utilizandoConvert.ToDateTime()
-
C# Programa para converter
string
emDateTime
utilizandoDateTime.Parse()
-
C# Programa para converter
string
em umDateTime
utilizandoDateTime.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()
.