Convertir una cadena a DateTime
¿Cómo se convierte una cadena como 2009-05-08 14:40:52,531
en a DateTime
?
Dado que está manejando una hora basada en 24 horas y tiene una coma separando la fracción de segundos, le recomiendo que especifique un formato personalizado:
DateTime myDate = DateTime.ParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff",
System.Globalization.CultureInfo.InvariantCulture);
Tienes básicamente dos opciones para esto. DateTime.Parse()
y DateTime.ParseExact()
.
El primero es muy indulgente en términos de sintaxis y analizará fechas en muchos formatos diferentes. Es bueno para la entrada del usuario que puede venir en diferentes formatos.
ParseExact le permitirá especificar el formato exacto de su cadena de fecha para usar en el análisis. Es bueno usar esto si su cadena siempre tiene el mismo formato. De esta manera podrá detectar fácilmente cualquier desviación de los datos esperados.
Puede analizar la entrada del usuario de esta manera:
DateTime enteredDate = DateTime.Parse(enteredString);
Si tienes un formato específico para la cadena, debes usar el otro método:
DateTime loadedDate = DateTime.ParseExact(loadedString, "d", null);
"d"
representa el patrón de fecha corta (consulte MSDN para obtener más información ) y null
especifica que se debe utilizar la cultura actual para analizar la cadena.
prueba esto
DateTime myDate = DateTime.Parse(dateString);
una mejor manera sería esta:
DateTime myDate;
if (!DateTime.TryParse(dateString, out myDate))
{
// handle parse failure
}
Usar DateTime.Parse(string)
:
DateTime dateTime = DateTime.Parse(dateTimeStr);