2011-07-29 5 views
7

クライアントが私たちのサーバーからファイルをダウンロードした後、アプリケーションはサーバからyyyy/mm/dd HH:mm:ssの形式で日付文字列にParseExactを送ります。DateTime.ParseExactタイ/仏教時代の問題

多くの混乱の末、クライアントシステムの日付が19/7/2554であることがログに記録されていました。これはタイのような有効な時間であることがわかりますが、Windowsのデフォルトは仏教時代のシステムです(2554年です)。

私の解析の正確さは、問題と思われる不変の文化で行われますしかし、文化は、あなたが解析しようとしていた形式を参照していると思いましたか?

私が取得例外メッセージがある:曜日がのCultureInfoがカレンダー情報も含まれてい

+0

フォーマットには曜日がまったく含まれていないようです。あなたが解析しようとしている文字列と解析しているコードの例を挙げることができますか? –

+0

実際にフォーマットのリストを指定していますか? – V4Vendetta

+0

ああ、私の悪い男、私は台無し。私が知らなかったもう一つのコードが走っていたことが分かります。ログファイルからの例外メッセージだけでデバッグするのはかなり難しかったです。それは、DateTime.Parseエラーであって、それは構文解析ではありませんでした。私は、自分のPCの地域をタイに変更し、それがどこで死んでいるのかを正確に見て問題を再現することができました。 –

答えて

1

不正確であったため、文字列は有効DateTimeとして認識されませんでした。 TryParseExactメソッドが正しいカレンダー情報にアクセスできる場合は、日付を正しく解析できます。

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.calendar.aspx

あなたはタイのCultureInfoとにInvariantCultureのCultureInfoを交換する場合は、その文化のデフォルトのカレンダーが使用されます。

また、CultureInfoを必要としないTryParseメソッドのオーバーロードを使用することもできます。この場合に使用されるカルチャは、Windowsのユーザーの地域設定に依存します。

関連する問題