Análise de data e hora em C#

Resumo : neste tutorial, você aprenderá como usar o DateTime Parse()método C# para converter uma string em um DateTimevalor.

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 DateTimevalor. 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, 2023Linguagem de código:  C#  ( cs )

O Parse()método converte a string 05/07/2023em 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 CultureInfono 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-GBcultura:

using System.Globalization;
using static System.Console;

WriteLine(CultureInfo.CurrentCulture); // en-USLinguagem de código:  C#  ( cs )

Saída:

en-USLinguagem de código:  C#  ( cs )

Para instruir o Parse()método a usar uma cultura explícita, você pode usar um CultureInfoobjeto 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, 2023Linguagem de código:  C#  ( cs )

Neste exemplo, o Parse()método analisa a string 05/07/2023como 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 AMLinguagem de código:  C#  ( cs )

Se o Parse()método não puder analisar uma string para um DateTimevalor válido, ele lançará uma FormatExceptionexceçã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 DateTimeobjeto 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 DateTimeobjeto:

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 AMLinguagem 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 stringLinguagem de código:  C#  ( cs )

Resumo

  • Use o método C# DateTime.Parse()para converter uma string de data e hora em um DateTimeobjeto equivalente.
  • Use o método C# DateTime.TryParse()para converter uma string de data e hora em um DateTimeobjeto equivalente e retornará false se a string de entrada for inválida.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *