C# Converter String para Data

  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:

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

  • C# Retirar com eficiência todos os espaços em branco de uma string
  • Como converter uma string para flutuar em C#
  • Artigo relacionado - Csharp Datetime

  • Como converter String para Int em C#
  • Como converter uma string para flutuar em C#