C# Convertir Cadena a fecha y hora
-
C# Programa para convertir la
string
enDateTime
usandoConvert.ToDateTime()
-
C# Programa para convertir la
string
enDateTime
usandoDateTime.Parse()
-
C# Programa para convertir la
string
en unaDateTime
usandoDateTime.ParseExact()
- 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
- C# Convertir Cadena a enum
- C# Convertir la Int a Cadena
- Usar cadenas en la instrucción Switch en C#
- Cómo convertir una cadena a booleana en C#
- Cómo convertir una cadena en un array de bytes en C#
- Cómo convertir una cadena para que flotante en C#