Ian*_*oyd 25 .net globalization culture internationalization
鉴于以下两种文化:
CultureInfo c1 = InvariantCulture;
CultureInfo c2 = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)
我要检查两种文化特有的每一条信息,例如:
c1.DateTimeInfo.ShortDatePattern;
c2.DateTimeInfo.ShortDatePattern;
c1.DateTimeInfo.LongDatePattern;
c2.DateTimeInfo.LongDatePattern;
c1.NumberFormat.CurrencyDecimalDigits;
c2.NumberFormat.CurrencyDecimalDigits;
c1.TextInfo.IsRightToLeft;
c2.TextInfo.IsRightToLeft;
Run Code Online (Sandbox Code Playgroud)
我会发现有什么不同吗?
换句话说,InvariantCulture,出于各种目的,是否与"en-US"文化相同?
Dav*_*ton 33
是.
例如:InvariantCulture使用货币的国际符号:"¤"与美元符号:格式化货币时的"$".
然而,在大多数情况下,它们非常相似.
编辑:的差异列表en-US和Invariant:
en-US Invariant
===================== ================== ==================
Number 123456.78 +123456.78
Currency Symbol $ ¤
Currency $123456.78 ¤123456.78
Short Date 1/11/2012 01/11/2012
Time 10:36:52 PM 22:36:52
Metric No Yes
Long Date Wednesday, January 11, 2012 Wednesday, 11 January, 2012
Year Month January, 2012 2012 January
Run Code Online (Sandbox Code Playgroud)
存在一些实际差异(在 Watch 窗口中检查两个值),但最相关的差异是intent。InvariantCulture 显示您以独立于文化(如果英语相关)的方式解析某些数据的意图,而 en-US 则声明您以特定于美国的方式解析数据的实际意图。