datetime.parse y hacerlo funcionar con un formato específico

141

Tengo una fecha y hora que regresa de un archivo XML en el formato:

20080916 11:02

como en

aaaamm hh: ss

¿Cómo puedo obtener la función datetime.parse para retomar esto? ¿Lo analizo sin errores? Salud

anonimato
fuente

Respuestas:

246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

suponiendo que quisieras decir que los minutos siguieron a las horas, no los segundos, tu ejemplo es un poco confuso.

La documentación de ParseExact detalla otras sobrecargas, en caso de que desee que el análisis se convierta automáticamente a Universal Time o algo así.

Como menciona @ Joel Coehoorn , también existe la opción de usar TryParseExact , que devolverá un valor booleano que indica el éxito o el fracaso de la operación; todavía estoy en .Net 1.1, por lo que a menudo olvido este.

Si necesita analizar otros formatos, puede consultar las cadenas de formato estándar de fecha y hora .

Blair Conrad
fuente
11
No olvides DateTime. TryParseExact ()
Joel Coehoorn
Además: Xml estándar tiene su propio formato de fecha y hora muy específico, y las herramientas .Net Xml deberían poder leerlo.
Joel Coehoorn
En este caso, funciona bien con el último parámetro como nulo, pero para cualquiera que encuentre este CultureInfo.InvariantCulture, de lo contrario, puede tener problemas si su fecha y hora es algo así como "1823/01/01".
Todilo
@JoelCoehoorn standard XML specific DateTime format?
Kiquenet
10

Gracias por el consejo, usé esto para analizar mi fecha "20071122", necesitaba agregar estilos de fecha, no usé ninguno y funcionó:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
bert
fuente