2009-06-15 62 views
0

我有一個很好的功能設置格式化日期按 Leading Zero Date Format C#如何檢測執行線程的當前文化?

但事實證明,在我們的農場,我們有一個英國的語言環境下運行一些葉片和一些在美國的位置,這樣,這取決於它崩潰。

所以我在做什麼是如何測試當前的服務器區域設置?

喜歡的東西...

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

} 
else 
{ 

..otherstatement 
} 

+0

我建議除暴安良是如此脆弱,如果你改變當地人... – 2009-06-15 11:58:47

+0

手持打破任何代碼,但是有什麼建議? – 2009-06-15 12:00:16

回答

2

您應該將所需的文化傳遞給您的所有格式化函數(通常爲InvariantCulture)。

或者,您可以設置頁面文化like so。該代碼也可以放入asax.cs文件中的Application BeginRequest重寫中,以影響所有頁面。

1

通常我們go with UTC,而不是設置特定的代碼。

+0

這將是我個人的偏好,但基本上我將英國的日期轉換爲美國以滿足第三方API要求 – 2009-06-15 12:06:19

1

就我所知,測試CurrentCulture是實現您要求的唯一方法。不過,我強烈建議將日期保留爲DateTime,直到將它們呈現在用戶界面中,並且在依賴日期格式的服務器功能中沒有if語句。

我通常會盡量將日期格式應用於儘可能靠近用戶的位置。

4
Date now = DateTime.Now; 
CultureInfo ci = Thread.CurrentThread.CurrentCulture; 
Console.WriteLine(now.ToString("d", ci)); 
相關問題