2009-06-15 9 views
0

私は Leading Zero Date Format C#実行中のスレッドの現在のカルチャを検出するにはどうすればよいですか?

ごとに日付をフォーマットするための素敵な機能を設定している。しかし、それは、我々はいくつかのブレードが英国のロケールで実行されていると、米国のロケールのいくつかは、それがクラッシュしたかに応じてい私たちの農場で判明します。

私はどのように私は現在のサーバーのロケールをテストするのですか?

のような何か...

if(Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName == "GB"){ 
... 

} 
else 
{ 

..otherstatement 
} 

のTa

+0

私は地元の人を変更すると壊れやすいように非常に壊れやすいコードを取り除くことをお勧めします... –

+0

便利ですが、何か提案がありますか? –

答えて

2

すべての書式設定関数(通常はInvariantCulture)に目的のカルチャを渡す必要があります。

like soの文化を設定することもできます。このコードは、すべてのページに影響を与えるために、asax.csファイルのアプリケーションBeginRequestオーバーライドにも入ることができます。

+0

ページカルチャーを設定します。私は1ヶ月前に古典的なASPアプリ全体にそれをやらなければならなかったことを考慮して、これを覚えておくべきです。 ありがとう –

1

通常我々go with UTCの代わりに、ロケール固有のコード。

+0

それは私の個人的な好みですが、基本的に私はサードパーティのAPI要件を満たすために英国から米国に日付を変換しています –

1

私が知る限り、CurrentCultureのテストは、あなたが求めるものを達成する唯一の方法です。しかし、私は、ユーザーインターフェイスに表示され、日付形式に依存するサーバー機能にifステートメントを持たない限り、日付をDateTimeとして保持することを強くお勧めします。

私は通常、可能な限りユーザーの近くに日付書式を適用しようとします。

4
Date now = DateTime.Now; 
CultureInfo ci = Thread.CurrentThread.CurrentCulture; 
Console.WriteLine(now.ToString("d", ci)); 
関連する問題