(C#)サイトについて文字列化した日時を異なるカルチャ間で扱おうとして失敗する例カルチャにはインバリアントカルチャと呼ばれる特殊なカルチャが用意されています。インバリアントカルチャでは、特定の言語や国・地域に依存しない書式が定義されています。インバリアントカルチャを使用すると、ローカライズされる書式(例えば短い日付の形式d)を使って文字列化する場合でも、実行環境のカルチャの影響を受けず常に同じ結果が得られます。インバリアントカルチャには、英語圏で使われるものを基本とする書式が用意されています。インバリアントカルチャが特に有用となるのは、異なるカルチャ間で日時を扱う場合です。例として、文字列形式で日時のデータをやり取りすることを考えます。(年月日の順)となります。Parseメソッドで復元すると、同じja-JPの環境なら2013年4月1日という日付が復元されます。解釈され、異なる日付として復元されてしまいます。次の例は、そのような状況を再現するものです。この例では、Thread.CurrentThread.CurrentCultureに設定されているカルチャを変更することにより、異なるカルチャとなる環境で実行した場合の状況を再現しています。2.ja-JPでの実行結果例2013/04/0104/01/2013こういった問題を避けるためには、変換時と復元時でカルチャが異なる場合でも同じ形式となる書式を使う必要があります。この例のようにローカライズされる書式で文字列化しなければならない場合でも、インバリアントカルチャを使えばこういった問題を避けることができます。一般的にこういった場合はローカライズされない書式を使うことが推奨されます。ISO8601(W3C-DTF)形式oやRFC1123形式rなどはローカライズされない書式であり、また言語や処理系にも依存しないフォーマットであるため、異なる実行環境や処理系との日時のやりとりに向いています。§.日付と時刻の書式指定子を参照してください。§.インバリアントカルチャをご覧ください。21:55※本ページはサンプルコード部分のみを抜粋したものです。Framework/日付と時刻/日時・文字列の変換と書式にてご覧いただけます。