¿Cómo convierto una cadena al formato DateTime? Por ejemplo, si tuviera una cadena como:¿Formato de fecha y hora de la cadena?
"24/10/2008"
¿Cómo consigo que en el formato de DateTime?
¿Cómo convierto una cadena al formato DateTime? Por ejemplo, si tuviera una cadena como:¿Formato de fecha y hora de la cadena?
"24/10/2008"
¿Cómo consigo que en el formato de DateTime?
Uso DateTime.ParseExact:
string str = "24/10/2008";
DateTime dt = DateTime.ParseExact(str, "dd/MM/yyyy",
Thread.CurrentThread.CurrentCulture);
(usted debe considerar lo que la cultura que realmente desea analizar en, es cierto.)
EDIT: Otras respuestas han especificado "nulo" como tercer parámetro - este es equivalente a usar Thread.CurrentThread.CurrentCulture
.
Para otros formatos, vea "Custom Date and Time Format Strings" en MSDN.
intentar algo así como
DateTime date = System.DateTime.ParseExact(str, "dd/MM/yyyy", null);
Para el tiempo esto podría funcionar
DateTime date = System.DateTime.ParseExact(str, "HH:mm:ss", null);
string str = "24/10/2008";
DateTime dt = Convert.ToDateTime(str);
Si no conoce el formato, utilice:
DateTime d = DateTime.Parse(dateString);
Este intenta analizar la representación de cadena de una fecha y hora utilizando el para reglas de matting de la cultura actual (p. Inglés (EE. UU.) "En-US", alemán "de-DE", ...). Intenta ignorar datos no reconocidos y completa los valores faltantes para el año, el mes y el día con la fecha actual (si solo analiza una cadena que contiene la hora, por ejemplo).
Si sabe que el cultivo empleado de la cadena es diferente de la actual, se puede especificar la cultura de usar:
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
DateTime d = DateTime.Parse(dateString, culture);
Debe Allways suround la conversión por un bloque try-catch ya que la la cuerda debe ajustarse a un patrón reconocido. Alternativamente, también puede probar la validez de la cadena con el método DateTime.TryParse(dateString, out dateTime)
, que devuelve verdadero en caso de éxito y el resultado en dateTime
; o falso de lo contrario.
Si conoce el formato exacto, puede utilizar
DateTime d = DateTime.ParseExact(dateString, "dd/MM/yyyy", null);
(Ver Custom Date and Time Format Strings desde el sitio de MSDN para otras cadenas de formato).
También te sugiero que consultes DateTime.TryParse
si no estás seguro de en qué formato estará la cadena de fecha. De esta forma, evitarás excepciones costosas en la rutina de análisis.
yo también la segunda recomendación de Jon Skeet al uso DateTime.ParseExact
si haces saben exactamente qué formato de la fecha será en todo momento.
También hay .TryParseExact(), para obtener lo mejor de ambos mundos. –