2013-01-11 20 views
0

我剛剛將我的機器升級到了Win8,並且部分單元測試失敗。我已經追查到:爲什麼LongDatePattern在Windows 8上有所不同

Win7: CultureInfo("en-US").DateTimeFormat.LongDatePattern = "dddd, MMMM dd, yyyy" 
Win8: CultureInfo("en-US").DateTimeFormat.LongDatePattern = "dddd, MMMM d, yyyy" 

這與我嘗試使用.Net框架的哪個版本無關。

是否有其他一些全球性的Win8設置影響了這個?我無法找到任何有關此被更改的內容 - 一切都表明它應該是第一種模式。

最簡單的代碼片段,以嘗試在PowerShell中:

> [system.globalization.cultureinfo]::currentculture.datetimeformat.longdatepattern 
dddd, MMMM d, yyyy 

的FullDateTimePattern同樣改變:dddd, MMMM d, yyyy h:mm:ss tt

+2

如果你的單元測試依賴於用戶可修改的設置,那麼你有問題。 –

+0

也許我沒有正確理解這一切。你可以創建一個定製的文化信息和/或日期時間格式,但是當我要求一個特定的(「en-US」)時,它應該始終是相同的,不是嗎?這在全球範圍內發生了什麼變化? – Cary

+0

嘗試比較Windows 7和8之間控制面板中日曆的區域設置,以查看它們是否與衆不同。 – adrianbanks

回答

3

這樣做的原因變化(這是你的問題)是爲了讓領先零不是無用的。這對打印和存儲有積極影響。

只有書呆子喜歡前導零反正;)

+1

傑裏,這種變化是否記錄在案? –

+0

不,實際上,MSDN文檔(http://msdn.microsoft.com/zh-cn/library/system.globalization.datetimeformatinfo.longdatepattern.aspx)仍然顯示爲「Gregorian-USEnglish dddd,MMMM dd,yyyy '。可恥。 –

相關問題