C# Convertir Cadena a fecha y hora

  1. C# Programa para convertir la string en DateTime usando Convert.ToDateTime()
  2. C# Programa para convertir la string en DateTime usando DateTime.Parse()
  3. C# Programa para convertir la string en una DateTime usando DateTime.ParseExact()
  4. Conclusión

En la mayoría de los casos, obtenemos una fecha en forma de cadena y queremos usar el día, mes y año individualmente. No te preocupes, en C#, para convertir una cadena en un objeto DateTime, usamos una clase predefinida llamada DateTime.

Hay varios métodos para convertir una cadena en DateTime en C#, pero aquí, sólo elaboraremos tres métodos con ejemplos de ejecución. Estos métodos son Convert.ToDateTime(), DateTime.Parse() y DateTime.ParseExact().

C# Programa para convertir la string en DateTime usando Convert.ToDateTime()

La sintaxis correcta de Convert.ToDateTime() es

Convert.ToDateTime(dateTobeConverted);
Convert.ToDateTime(dateTobeConverted, cultureInfo);

Debe tenerse en cuenta que si no se proporciona información sobre la cultura, entonces, por defecto, el compilador verá nuestra cadena de fechas como mes/día/año. CultureInfo es una clase C# en el espacio de nombres System.Globalization que da información sobre una 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);
   }

}

Producción:

The Date is: 4 6 2020

Ahora lo implementaremos pasando el objeto CultureInfo como un 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);
   }

}

Producción:

The Date is: 4 6 2020

Si cambiamos la CultureInfo por nl-NL, el mes y el día serán intercambiados.

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);
   }

}

Producción:

The Date is: 6 4 2020

C# Programa para convertir la string en DateTime usando DateTime.Parse()

La sintaxis de DateTime.Parse() es,

DateTime.Parse(dateTobeConverted);
DateTime.Parse(dateTobeConverted, cultureInfo);

Lo mismo ocurre con el método DateTime.Parse(), si no estamos proporcionando información de la cultura como argumento, entonces por defecto nuestro sistema lo verá como mes/día/año.

Si el valor de la cadena a convertir es nulo, entonces devolverá ArgumentNullException que debe ser manejado usando el bloque 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);
   }

}

Producción:

The Date is: 4 6 2020

C# Programa para convertir la string en una DateTime usando DateTime.ParseExact()

La sintaxis de DateTime.ParseExact() es,

DateTime.ParseExact(dateTobeConverted, dateFormat, cultureInfo);

DateTime.ParseExact() es el mejor método para convertir una cadena en DateTime. En este método, pasamos el formato de la fecha como un argumento. Esto hace que sea fácil para el usuario realizar exactamente la conversión.

Aquí hemos pasado null como un parámetro en lugar de la información de la cultura porque es un tema totalmente nuevo y lleva tiempo entenderlo.

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);
   }

}

Producción:

The Date is: 6 4 2020

Conclusión

Hay muchos métodos para convertir una cadena a DateTime en C#. Hemos discutido algunos de ellos. El mejor método para convertir una cadena a DateTime es DateTime.ParseExact().

Artículo relacionado - Csharp String

  • Compruebe si una cadena es nula o vacía en C#
  • Repetir cadena X veces en C#
  • Artículo relacionado - Csharp Datetime

  • Compruebe la cadena Palindrome en C#