2011-06-11 29 views
17

Estoy intentando generar la marca de tiempo para cXML como se muestra a continuación. ¿Hay alguna función en C# que pueda usar para formatear la fecha a: 2011-06-09T16: 37: 17 + 16: 37Generar formato de fecha y hora para XML

p.

<cXML payloadID="[email protected]" 
timestamp="2011-06-09T16:37:17+16:37"> 
+3

Cuál es el propósito del '16 : 37' parte? En [ISO 8601] (http://en.wikipedia.org/wiki/ISO_time) se utiliza para la zona horaria, pero ese no parece ser el caso aquí. – svick

Respuesta

33

Utilice la "o" especificador de formato - leer acerca de esto en la documentación standard Date and Time format strings en MSDN.

El patrón de este especificador refleja un estándar definido (ISO 8601).

Y:

6/15/2009 1:45:30 PM -> 2009-06-15T13: 45: 30,0900000

string formatted = DateTime.Now.ToString("o"); 

Si esto no es lo Si lo desea, deberá usar un custom format string; creo que deberá hacerlo, ya que el desplazamiento no es estándar.

string formatted = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssK"); 
6

Sí, utilizando DateTime.ToString("s"), ver este enlace: Standard Date and Time Format Strings. Tenga en cuenta que "s" no incluye la información de la zona horaria, mientras que "o" incluye los segundos fraccionarios y la zona horaria.

También puede usar el método XmlConvert.ToString, donde también puede especificar la información de la zona horaria.

0

El siguiente es un ejemplo de una declaración de fecha en un esquema:

<xs:element name="start" type="xs:date"/> 

Un elemento en el documento podría tener este aspecto:

<start>2002-09-24</start> 

Para especificar una zona horaria, puede introducir una fecha en el tiempo UTC mediante la adición de una "Z" detrás de la fecha:

<start>2002-09-24Z</start> 

o puede especificar un Offse t desde la hora UTC mediante la adición de un tiempo positivo o negativo detrás de la fecha:

<start>2002-09-24-06:00</start> 

o

<start>2002-09-24+06:00</start> 
0

Puede utilizar el método ToString

DateTime time = DateTime.Now;    
string format = "MMM ddd d HH:mm yyyy"; // or any format you want 
Console.WriteLine(time.ToString(format)); 
Cuestiones relacionadas