2010-03-25 72 views

回答

1

令人驚訝的我有一個非常簡單的答案。在設定文化和UICulture的同時,我需要做的就是將文化財產始終置於en-us。這將導致總是以英文顯示日期格式。

2

關於字符串,當你顯示日期,請執行下列操作:

CultureInfo ci = new CultureInfo("en-US"); 
string s = dateTimeObject.ToString(ci); 

但是,這是一個簡單的例子,你只需做你想做的DateTime對象上做必要的工作。

+0

如果我這樣做,我將不得不改變任何地方的代碼。這不能在全球範圍內完成嗎? – 2010-03-25 06:48:12

+0

@Nadeem:可以製作自己的CultureInfo。看到我更新的答案。 – bernhof 2010-03-25 09:41:19

9

要更改日期的格式,您可以基於現有的CultureInfo(在您的情況下爲「fr-CA」),只修改日期格式,您可以create a custom CultureInfo。我對此沒有任何經驗,但鏈接的文章和this article解釋了它是如何完成的。據說,這並不難。

我想將System.Threading.Thread.CurrentThread.CurrentCulture設置爲您自定義CultureInfo的一個實例(例如在Page.Load事件中)應該可以完成這項工作。


或者,使用CultureInfo類以每個字符串的基礎上指定文化:

CultureInfo culture = new CultureInfo("en-US"); 

每當你寫的日期到頁面上,請使用以下語法:

myDate.ToString("d", culture); 

string.Format(
    culture, 
    "This is a string containing a date: {0:d}", 
    myDate); 

Th e CultureInfo類位於System.Globalization名稱空間,d位於以上是輸出日期的格式。 See John Sheehan's ".NET Format String Quick Reference" cheat sheet瞭解更多關於格式化字符串的信息。

2

謝謝你們! 看起來像你的sugessions正在爲我工​​作。 我嘗試創建一個自定義文化,它擴展了fr-ca的功能並將其日期格式更改爲en-us。 下面是代碼

CultureInfo ci = new CultureInfo("fr-ca"); 
DateTimeFormatInfo dateformat = new DateTimeFormatInfo(); 
dateformat.FullDateTimePattern = "dddd, mmmm dd, yyyy h:mm:ss tt";// Date format of en-us 
ci.DateTimeFormat = dateformat; 
CultureAndRegionInfoBuilder obj = new CultureAndRegionInfoBuilder("fr-ca", CultureAndRegionModifiers.Replacement); 
obj.LoadDataFromCultureInfo(ci); 
obj.Register(); 

一旦代碼註冊新的FR-CA,在FR-CA的日期格式將是相同EN-US的。 該代碼可以在Page_Load中使用。

1

這裏是一小段代碼片段上面的代碼:

CultureInfo ci = new CultureInfo("fr-ca"); 

DateTimeFormatInfo dateformat = new DateTimeFormatInfo(); 



dateformat.FullDateTimePattern = "dddd, mmmm dd, yyyy h:mm:ss tt";// Date format of en-us 



ci.DateTimeFormat = dateformat; 

CultureAndRegionInfoBuilder obj = new CultureAndRegionInfoBuilder("fr-ca", CultureAndRegionModifiers.Replacement); 


obj.LoadDataFromCultureInfo(ci); 

obj.Register(); 
2

在我的情況下,這就是我所做的。我必須設置應用程序的語言,還要確定語言是否是從右向左語言,還需要保持標準的日期時間格式。所以這就是我做的:

string culture = "ar-SA"; 
//Set language and culture to Arabic 
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture); 
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(culture); 

//But independent of language, keep datetime format same 
DateTimeFormatInfo englishDateTimeFormat = new CultureInfo("en-CA").DateTimeFormat; 
Thread.CurrentThread.CurrentCulture.DateTimeFormat = englishDateTimeFormat; 
+0

非常感謝你,你救了我的一天。無論如何,我編輯你的答案來重置UI文化中的日期時間格式。祝你今天愉快! – 2017-01-16 19:00:38

+0

太棒了!你歡迎:) – Elnoor 2017-01-16 19:03:01

+0

最好的解決方案,它適用於我 – amal50 2017-02-12 21:37:38