也许有人知道,.NET Framework 4.0 中 CultureInfo.Name 属性的可能最大长度是多少。
答案:84
文档:(感谢@lethek 在评论中) http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.cultureandregioninfobuilder%28v=vs.100%29.aspx
我能够使用长度为 84 个字符的 CultureAndRegionInfoBuilder 类创建一种新的文化,并使用以下代码。
CultureAndRegionInfoBuilder 不允许名称超过 84 个字符。要达到 84 个字符,您需要确保用“-”分隔的每个部分必须不超过 8 个字符。您不能仅仅创建一种名为“ThisIsLongerThan8Characters”的文化,因为它在没有分隔符的情况下超过 8 个字符。(请注意,我认为您可以以相同的方式使用“_”,但我没有尝试过)
要使以下代码工作,您需要引用sysglobl程序集并导入System.Globalization命名空间。
下面的代码尝试在开始和结束时取消注册文化。注册完成后,我会加载一个 CultureInfo,格式化日期并显示 Name 和 DisplayName。
希望这是有帮助的。
string cultureName = "qwertyui-12345678-qwertyui-12345678-qwertyui-12345678-qwertyui-12345678-qwertyui-123";
Console.WriteLine( "MAX LENGTH: " + cultureName.Length );
try {
CultureAndRegionInfoBuilder.Unregister( cultureName );
} catch {
Console.WriteLine( "Cannot remove culture" );
}
CultureAndRegionInfoBuilder builder = new CultureAndRegionInfoBuilder( cultureName , CultureAndRegionModifiers.None );
CultureInfo ci = new CultureInfo( "en-AU" );
RegionInfo ri = new RegionInfo( "US" );
builder.LoadDataFromCultureInfo( ci );
builder.LoadDataFromRegionInfo( ri );
builder.Register();
CultureInfo info = new CultureInfo( cultureName );
Console.WriteLine( DateTime.Now.ToString( info.DateTimeFormat.LongDatePattern ) );
Console.WriteLine( info.Name );
Console.WriteLine( info.DisplayName );
try {
CultureAndRegionInfoBuilder.Unregister( cultureName );
} catch {
Console.WriteLine( "Cannot remove culture" );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |