Hi alle,
Ich hab zwar schon ge googled und auch versucht hier war zu finden, aber bleibt trotzdem hängen an einer stelle.
Ich will einen gewissen Timestamp in einen XML als attribut schreiben. Soweit so gut, Der Timestamp soll nen bestimmtes Format haben. Auch kein Problem soweit. Nur soll ich auch die Zeitzone dazuschreiben...
Beispiel: 2010-09-30T14:00:00.000+02:00
Meine Lösung:
pb.endtimestamp = DateTime.Now.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffK");
bis zu dem K funktionierts auch und laut recherche:
K Represents the time zone information of a date and time value (e.g. +05:00)
mein OUTPUT nach dem ich den XML erstellt hab:
<pb id="1" starttimestamp="" endtimestamp="2010-12-20T14:03:11.227Z" />
Warum steht da nen Z? müsste eigentlich +01:00 stehen 😕
Kann mir da wer helfen?
:evil:
Hi,
das offset das du anhängen willst kriegst du mit
TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now);
Das tut es fast.
Zeigt leider auch sekunden an 😠 und vorne steht kein + bei der Zeitzone.
Hab gehofft es geht eleganter 😉
so wie hier:
yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2006-08-22T06:30:07.7199222-04:00
http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
leider macht der das K nicht wie gesagt :S auch "zzz" funktioniert nicht, da krieg ich ne exception.
Beim K als attr. schreibt er mir nen "Z" in den XML. also er macht was, aber net det richtige 🤔 🤔
:evil:
Wenn du deine Zeit vorher nach UTC konvertiert ist, kommt doch immer +/- 0 raus?
Ich nehme an, dass das auch der Grund dafür sein könnte, dass das Z im ToString nicht interpretiert wird.
System.Diagnostics.Debug.WriteLine(DateTime.Now.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffK"));
System.Diagnostics.Debug.WriteLine(DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffK"));
2010-12-20T15:23:35.251Z
2010-12-20T16:23:35.276+01:00
Jo,
das wars Oo.
Manchmal sieht man den Wald vor lauter Bäumen nicht 🤔 🤔
Danke und schonmal ein Frohes Weihnachtsfest.
:evil:
Ich mache sowas eigentlich immer mit der XmlConvert Klasse. Damit geht das ganz easy.
Früher hab ich das auch immer manuell mit diversen Format Angaben gebastelt bis ich XmlConvert entdeckt habe. Mit der Klasse wird einem aber alles abgenommen und man kann so gut will alle Typen kovertieren und eben auch wieder zurück wenn man XML ausliest.
XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.RoundtripKind)