Resumo : neste tutorial, você aprenderá como usar o DateTime
Parse()
método C# para converter uma string em um DateTime
valor.
Introdução ao método C# DateTime Parse()
O DateTime.Parse()
método converte uma representação de string de data e hora em um DateTime
valor. Por exemplo:
using static System.Console;
var dt = DateTime.Parse("05/07/2023");
WriteLine(dt.ToLongDateString());
Linguagem de código: C# ( cs )
Saída:
Sunday, May 7, 2023
Linguagem de código: C# ( cs )
O Parse()
método converte a string 05/07/2023
em May 7, 2023
, não July 5, 2023
. A razão é que o Parse()
método utiliza a cultura atual do computador.
Para obter a cultura atual, você usa a CultureInfo
no segundo argumento do Parse()
método. Por exemplo, o seguinte usa o Parse()
método para analisar a string 05/07/2023
, mas usa a en-GB
cultura:
using System.Globalization;
using static System.Console;
WriteLine(CultureInfo.CurrentCulture); // en-US
Linguagem de código: C# ( cs )
Saída:
en-US
Linguagem de código: C# ( cs )
Para instruir o Parse()
método a usar uma cultura explícita, você pode usar um CultureInfo
objeto como segundo argumento assim:
using System.Globalization;
using static System.Console;
var dt = DateTime.Parse(
"05/07/2023",
CultureInfo.GetCultureInfo("en-GB")
);
WriteLine(dt.ToLongDateString());
Linguagem de código: C# ( cs )
Saída:
Wednesday, July 5, 2023
Linguagem de código: C# ( cs )
Neste exemplo, o Parse()
método analisa a string 05/07/2023
como July 5, 2023
.
Se a string de entrada não tiver dados de hora, o Parse()
método assumirá 12h00. Por exemplo:
using System.Globalization;
using static System.Console;
var dt = DateTime.Parse(
"05/07/2023",
CultureInfo.GetCultureInfo("en-GB")
);
WriteLine(dt);
Linguagem de código: C# ( cs )
Saída:
7/5/2023 12:00:00 AM
Linguagem de código: C# ( cs )
Se o Parse()
método não puder analisar uma string para um DateTime
valor válido, ele lançará uma FormatException
exceção. Para evitar a exceção, você pode usar o TryParse()
método.
C# DateTime TryParse()
O TryParse()
método analisa uma string especificada em um DateTime
objeto equivalente se a conversão for bem-sucedida. O TryParse()
método retorna verdadeiro se a análise for bem-sucedida ou falso caso contrário.
O exemplo a seguir usa o TryParse()
método para analisar uma sequência de data e hora para um DateTime
objeto:
using System.Globalization;
using static System.Console;
if (DateTime.TryParse(
"05/07/2023 10:45:00",
CultureInfo.GetCultureInfo("en-US"),
out var dt
))
{
WriteLine(dt);
}
else
{
WriteLine("Invalid date and time string");
}
Linguagem de código: C# ( cs )
Saída:
5/7/2023 10:45:00 AM
Linguagem de código: C# ( cs )
E o exemplo a seguir mostra o caso de falha:
using System.Globalization;
using static System.Console;
if (DateTime.TryParse(
"15/07/2023 10:45:00",
CultureInfo.GetCultureInfo("en-US"),
out var dt
))
{
WriteLine(dt);
}
else
{
WriteLine("Invalid date and time string");
}
Linguagem de código: C# ( cs )
Saída:
Invalid date and time string
Linguagem de código: C# ( cs )
Resumo
- Use o método C#
DateTime.Parse()
para converter uma string de data e hora em umDateTime
objeto equivalente. - Use o método C#
DateTime.TryParse()
para converter uma string de data e hora em umDateTime
objeto equivalente e retornará false se a string de entrada for inválida.