2009-03-19 8 views

Respuesta

44
lectores

Xml generalmente esperar fechas/horas en un formato muy específico; se puede utilizar este mismo usando XmlConvert:

string s = XmlConvert.ToString(DateTime.Now); 
DateTime when = XmlConvert.ToDateTime(s); 

Si está utilizando otra cosa, tendrá que leerlo como una cadena y usar DateTime.TryParseExact (o similar) para especificar la cadena de formato real:

string s = reader.ReadContentAsString(); 
DateTime when = DateTime.ParseExact(s, "M/d/yy hh:mm tt", 
    CultureInfo.InvariantCulture); 

Si está utilizando XmlSerializer, se puede utilizar una propiedad cuña para hacer la conversión - que me haga saber si esto es lo que está haciendo ...

+0

La información que estaba ingresando pasó a ser el 10/29/2012 15:25 y falló. Cuando lo cambié a 10/11/2012 15:25, funcionó. –

+0

@MarcGravell, cuando intento deserializar algunos rss feed usando 'XmlSerializer', el elemento' PubDate' causa un error. ¿Cómo puedo arreglarlo? – burhan

+2

@burhan al ver en qué viene el valor y manejarlo adecuadamente? Alternativamente, el marco central incluye clases dirigidas a RSS que pueden hacer un mejor trabajo. –

82

de acuerdo con la especificación XML schema, los valores de fecha y hora deben estar en ISO860 1 formato, por ejemplo, algo así como

2009-03-13T22:16:00 
+2

En ruby ​​usa el método 'iso8601', por ejemplo' Time.now.iso8601'. – Zubin

+2

Por curiosidad, el formato ISO8601 debe ser algo así como '2009-03-18T22: 16: 00-05: 00', pero la respuesta de David (omitir la zona horaria) también me funciona (mientras que el formato ISO8601 no). ¿Esto se debe a una serialización local en el XmlConverter (que, por lo tanto, no necesita la zona horaria)? – djiango

+1

En ISO8601, la zona horaria es opcional, por lo que tanto la cadena original como la cadena son fechas de fecha de ISO8601 válidas. Según http://www.w3.org/TR/xmlschema-2/#deviantformats, la zona horaria también es opcional en el esquema XML. No estoy seguro de por qué la versión de zona horaria no funciona para usted. –

Cuestiones relacionadas