2010-06-29 8 views
8

Das Format der internationalen Zeichenfolgendarstellung ist (JJJJ-MM-TT HH: MM: SS ± HHMM).Wie würden Sie DateTime im internationalen Format formatieren?

z.B. 2010-06-10 21:21:10 -0400

im Grunde das Problem, das ich habe, ist, herauszufinden, wie man den Unterschied von GMT zu erhalten.

DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123); 
String.Format("{0:yyyy-MM-dd HH:mm:ss ????}", dt); 

Antwort

13
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss zzz"); 

AUSGABE:

2010-06-29 08:25:16 -07:00 
+0

perfekt. Vielen Dank. Ich kann das ausziehen: ziemlich einfach. – Aaron

+0

@Aaron: Das Format "± HH: mm", einschließlich eines ':', ist in ISO8601 zulässig. – LukeH

+0

es ist legal, aber es ist nicht das Format, das Ziel-c verwendet. – Aaron

0

Ich denke, dass in den Stunden angezeigt wird. Das -4 ist der Unterschied zu GMT.

Oh ich verstehe, sorry missverstanden die Frage.

1

würde ich mit ISO format gehen.

Und das W3C hat auch eine Notiz zum Thema: Date and Time Formats.

Dies sind internationale Standards.

+0

das wäre wahrscheinlich besser, aber ich versuche, das Datum hin und her von Ziel-c zu übergeben. – Aaron

0

Wie würden Sie Datetime im internationalen Format formatiert werden?

Sie können einen custom format specifier verwenden (es gibt keine Standardformate für ISO-Standardformate für Datum und Uhrzeit).

Das Problem, das ich habe, ist herauszufinden, wie man den Unterschied von GMT bekommen.

Parse einem der DateTimeOffset ‚s statischen Methoden verwenden, und dann prüfen die Offset Eigenschaft.

Oder, wenn Sie meinen, wie Sie den Offset in die Zeichenfolge einfügen: Verwenden Sie mit der richtigen Zeitzone und einem benutzerdefinierten Formatbezeichner.

0

Zeichenfolge isoFormat = inputDateTime.Format ("s");