3文字を表示するためにDateTimeまたはTimeZone/TimeZoneInfoをフォーマットするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1527706

質問

私は、必ずしも一緒に仕事をしなければならなかった独特のデータタイム形式を要求する仕様を使用しています。

プロセス時に、OFX(1ではない)データタイム(DTClientまたはdtserver)に次の形式でスタンプする必要があります。
20071015021529.000

ただし、例では表示されています。

20071015021529.000[-8:PST]    

の声明を使用して最初のものに問題はありません

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

私はどのように取得するかを理解することさえできます %z 正しいオフセットを取得します。

3文字のタイムゾーンコードは、私がつまずいているところです。 .NETでこれを取得する簡単な方法はありますか、それとも必要なものを出力して解析するためにコードを作成することになりますか?

役に立ちましたか?

解決

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

他のヒント

3文字のタイムゾーンコードは、国全体で一意ではなく、完全に標準化されていません。たとえば、「CST」は、「Central Standard Time(USA)」または「中国の標準時間」の略語になる可能性があります。正しいのは、ロケールに依存します。

私の知る限り、このようなコードを調べるための.NETフレームワークに組み込まれた機能はないため、自分で実装する必要があります。

さらに(ただし、おそらくこれを知っています)、この機能をどのように実装するかに注意する必要があります。 UTCオフセットとタイムゾーンコードの間には、必ずしも1対1の対応がありません。たとえば、UTC-0700はUSマウンテンスタンダードタイム(MST)のどちらかです また 米国太平洋昼光(PDT)。

Rを使用する場合、RFC形式が提供されます。それはあなたを助けますか?

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

あなたもすることができます これをチェックしてリンクしてください, 、それがあなたを助けることができるなら。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top