Frage

Ich arbeite mit einer Spezifikation zusammen, die ein eigenartiges DateTime -Format erfordert, mit dem ich noch nicht unbedingt arbeiten musste.

Zum Zeitpunkt der Prozesszeit muss ein OFX (1 nicht 2) DateTime in einem Format wie folgt gestempelt werden (entweder dtclient oder dtServer):
20071015021529.000

In den Beispielen wird jedoch gezeigt:

20071015021529.000[-8:PST]    

Ich habe kein Problem mit der ersten, die eine Aussage von verwendet

DateTime.Now.ToString("yyyyMMddHHmmss.fff")

Ich kann sogar herausfinden, wie man bekommt %z Um den richtigen Versatz zu erhalten.

Der drei Buchstaben Timezone -Code ist, wo ich stolpere. Gibt es eine einfache Möglichkeit, dies in .NET zu bekommen, oder schreibe ich am Ende Code, um auszugeben und zu analysieren, was ich brauche?

War es hilfreich?

Lösung

Sie müssen genau herausfinden, welche 3 Buchstabencodes es benötigt. Was würde Europe/Paris Zum Beispiel geben? Persönlich würde ich die Daten in UTC konvertieren und diese so formatieren, es sei denn, Sie müssen die Zeitzoneninformationen beibehalten.

Andere Tipps

Die Drei-Buchstaben-Zeitzonencodes sind in den Ländern nicht einzigartig und nicht vollständig standardisiert. Zum Beispiel kann "CST" die Abkürzung für "Central Standard Time (USA)" oder "Chinesische Standardzeit" sein. Das korrekt ist, hängt von Ihrem Gebietsschema ab.

Meines Wissens gibt es keine Funktionen in das .NET -Framework, um nach Codes wie diesen zu suchen, sodass Sie es selbst implementieren müssen.

Zusätzlich (aber Sie wissen dies wahrscheinlich) müssen Sie vorsichtig sein, wie Sie diese Funktionalität implementieren. Es gibt nicht unbedingt eine Eins-zu-Eins-Korrespondenz zwischen UTC-Offsets und Zeitzonencodes. Zum Beispiel könnte UTC-0700 entweder US Mountain Standard Time (MST) sein oder US Pacific Daylight Time (PDT).

Wenn Sie R verwenden, erhalten Sie das RFC -Format. Wird es dir helfen?

String.Format("{0:r}", dt);  // "Sun, 09 Mar 2008 16:05:07 GMT"   RFC1123

Du kannst auch Überprüfen Sie diesen Link, also Link, wenn es Ihnen helfen kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top