C# Converter String para Data

Minahil Noor 16 fevereiro 2024
  1. C# Programa para converter string em DateTime utilizando Convert.ToDateTime()
  2. C# Programa para converter string em DateTime utilizando DateTime.Parse()
  3. C# Programa para converter string em um DateTime utilizando DateTime.ParseExact()
  4. Conclusão:
C# Converter String para Data

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().

Artigo relacionado - Csharp String