2016-05-03 5 views
-1

Ich brauche dieses Format hat: aaaa-mm-jjThh: mm: sszzzzzzDatum Zeit Format formatiert nicht

und steckt es in einem XML-Eigenschaft "Datetime" Typ.

Also, ich tat es:

var xmlObj= new xmlObj.tHeader(); 
xmlObj.prop = DateTime.ParseExact(DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"), "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'", CultureInfo.InvariantCulture); 

Console.WriteLine(xmlObj.prop); 

Die Console.WriteLine Anweisung Rückkehr: 03/05/2016 15:43:10

Ich verstehe nicht, warum die Eigenschaft das Format entfernen.

In der XSD wartet diese Eigenschaft auf ein Datetime-Format.

Irgendwelche Ideen?

EDIT:

Ok, auf dem Befehl Folge ich ein Standardformat zu sehen, aber wenn mein XML-Objekt konvertieren in Datei das Format korrekt ist:

enter image description here

Sehr seltsam ... aber es ist jetzt in Ordnung. Vielen Dank an euch alle

+0

Brauchen Sie die Sprachmarkierungen oder ist yyyy-MM-ddTHH: mm: ssZ gut? –

+0

yyyy-MM-ddTHH: mm: ssZ ist in Ordnung – Portekoi

+1

nur neugierig, woher kommt 'xmlObj.tHeader'? –

Antwort

2

Sie rufen DateTime.ParseExact, die eine Zeichenfolge in ein DateTime Objekt analysiert. Lassen Sie diesen Teil einfach fallen und weisen Sie das Ergebnis ToString direkt xmlObj.prop zu, oder weisen Sie das Objekt DateTime direkt zu (wenn es das ist, wonach es sucht).

Edit:

Ihre bearbeiten zu adressieren, Ihre XML-Datei korrekt erzeugt wird. Wenn Sie jedoch die DateTime-Stütze für die Konsole ausgeben, wird das Standardzeichenfolgenformat für ein Datum verwendet. Sie können das mit ToString() formatieren, wenn Sie möchten.

+0

Ich kann nicht: Ich habe den Fehler "Kann keine Zeichenfolge in Datetime konvertieren" – Portekoi

+0

Wenn es ist Wenn Sie eine 'DateTime' erwarten, überspringen Sie die Formatierung vollständig und weisen Sie den Datumswert direkt zu. –

+1

Was Sie in Ihrem Code tun, ist eine Hin-und-Rück-Umwandlung zwischen einer 'DateTime' und einer' String' - was keinen tatsächlichen Effekt hat. –

0

Ihr Format ist falsch in Parse, wenn Sie yyyy-MM-ddTHH:mm:ssz Format wollen, dann haben Sie es als Zeichenfolge konvertieren andernfalls wird es Standard-Datumzeit darstellen, versuchen Sie dies

xmlObj.prop = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ"), "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture); 
Console.WriteLine(xmlObj.prop.ToString("yyyy-MM-ddTHH:mm:ssz")); 
+0

Ich habe versucht, Ihren Vorschlag, aber keine Wirkung – Portekoi

+0

wenn 'xmlObj.prop 'ist datetime type, dann musst du deine Wunschtyp-Zeichenfolge umwandeln, sonst wird immer die Datetime als System Datetime Format ausgegeben. – Mostafiz

+0

Ich habe meine Frage bearbeitet. Befehlszeile formatiert das Datum, ich denke, – Portekoi

1

Sie versuchen, diese :

Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z"); 
+0

Das ist in Ordnung, aber wenn ich versuche, es in "prop" zu setzen, habe ich den Fehler "Konnte keine Zeichenfolge in DateTime konvertieren" – Portekoi