2

私は、必ずしもまだ作業する必要がなかった独特の Datetime 形式を必要とする仕様に取り組んでいます。

処理時に、OFX (2 ではなく 1) 日時を次のような形式でスタンプする必要があります (DTCLIENT または DTSERVER のいずれか):
20071015021529.000

ただし、例では次のように示しています。

20071015021529.000[-8:PST]    

のステートメントを使用した最初のものに問題はありません

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

%z正しいオフセットを取得する方法を理解することさえできます。

3 文字のタイムゾーン コードでつまずきます。これを .net で取得する簡単な方法はありますか、それとも必要なものを出力して解析するコードを書くことになりますか?

4

3 に答える 3

5

3 文字のタイム ゾーン コードは国によって一意ではなく、完全に標準化されているわけではありません。たとえば、「CST」は「Central Standard Time (USA)」または「Chinese Standard Time」の省略形です。どちらが正しいかは、ロケールによって異なります。

私の知る限り、このようなコードを検索する機能は .NET Framework に組み込まれていないため、自分で実装する必要があります。

さらに (しかし、おそらくこれはご存じでしょう)、この機能を実装する方法には注意が必要です。UTC オフセットとタイム ゾーン コードの間には、必ずしも 1 対 1 の対応があるとは限りません。たとえば、UTC-0700 は、米国山地標準時 (MST)または米国太平洋夏時間 (PDT) のいずれかになります。

于 2009-10-06T19:56:25.607 に答える
4

r を使用すると、RFC 形式になります。役に立ちますか。

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

役立つ場合は、このSOリンクも確認できます。

于 2009-10-06T20:02:28.250 に答える
2

必要な 3 文字のコードを正確に見つける必要があります。Europe/Parisたとえば、何が得られますか?個人的には、実際にタイム ゾーン情報を保持する必要がない限り、データを UTC に変換してそのようにフォーマットします。

于 2009-10-06T19:54:38.237 に答える