我正在使用法語本地化網站。不過,我不應該將日期格式更改爲法語。即使文化設置爲fr-ca,即其餘內容爲法文時,它仍必須按照en-us格式保留,日期格式仍應爲英文(en-us)。更改日期格式爲en-us,而文化爲fr-ca
回答
令人驚訝的我有一個非常簡單的答案。在設定文化和UICulture的同時,我需要做的就是將文化財產始終置於en-us。這將導致總是以英文顯示日期格式。
關於字符串,當你顯示日期,請執行下列操作:
CultureInfo ci = new CultureInfo("en-US");
string s = dateTimeObject.ToString(ci);
但是,這是一個簡單的例子,你只需做你想做的DateTime
對象上做必要的工作。
要更改日期的格式,您可以基於現有的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瞭解更多關於格式化字符串的信息。
謝謝你們! 看起來像你的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中使用。
這裏是一小段代碼片段上面的代碼:
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();
在我的情況下,這就是我所做的。我必須設置應用程序的語言,還要確定語言是否是從右向左語言,還需要保持標準的日期時間格式。所以這就是我做的:
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;
- 1. 更改爲日期格式。
- 2. 將日期格式更改爲Oracle日期格式
- 3. 日期格式爲什麼更改?
- 4. 更改日期格式爲ASP
- 5. 使用sed更改日期格式爲
- 6. vb3:更改爲區域日期格式
- 7. 更改日期時間爲UTC格式
- 8. 更改日期格式爲dmy
- 9. 格式化日期爲R
- 10. 格式化日期爲Java
- 11. 保留日期樣式,而列格式化爲文字
- 12. 將日期格式化爲文字
- 13. 格式化日期爲特定格式
- 14. 將日期格式化爲mysql格式
- 15. 改變格式爲C#日期格式
- 16. 將unix時間戳更改爲格式化日期?
- 17. 格式化的日期時間更改爲「00」
- 18. 將英文格式的代碼格式化爲日期格式
- 19. 格式化日期。如何將int值格式化爲日期格式?
- 20. 將wordpress中的日期格式更改爲相對日期
- 21. 如何將MySQL日期格式更改爲字符串日期
- 22. 更改日期格式爲一組日期
- 23. 日期格式爲日期
- 24. 將日期格式excel更改爲美國格式
- 25. 更改日期格式爲iPhone中的特殊格式
- 26. 如何將日期值格式更改爲YYYYMMDD格式
- 27. Java,將ISO日期格式更改爲所需格式
- 28. 從一種格式更改爲另一種格式的日期
- 29. 在標籤中將日期時間格式更改爲日期格式
- 30. 如何將日期格式更改爲月份(縮寫文本)
如果我這樣做,我將不得不改變任何地方的代碼。這不能在全球範圍內完成嗎? – 2010-03-25 06:48:12
@Nadeem:可以製作自己的CultureInfo。看到我更新的答案。 – bernhof 2010-03-25 09:41:19