2008-10-24 26 views

Respuesta

12

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.

0

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); 
0
string str = "24/10/2008"; 
DateTime dt = Convert.ToDateTime(str); 
4

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).

3

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.

+1

También hay .TryParseExact(), para obtener lo mejor de ambos mundos. –

Cuestiones relacionadas