Ответ: 84
Документация: (спасибо @lethek за комментарий) http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.cultureandregioninfobuilder%28v=vs.100%29.aspx
Мне удалось создать новую культуру с помощью класса CultureAndRegionInfoBuilder длиной 84 символа с приведенным нижеcode.
CultureAndRegionInfoBuilder не позволяет использовать имя длиной более 84 символов.Чтобы получить 84 символа, вам нужно убедиться, что каждая часть, которую вы разделяете "-", должна содержать не более 8 символов.Вы не можете просто создать культуру под названием «ThisIsLongerThan8Characters», потому что она длиннее 8 символов без разделителя.(Обратите внимание, что я думаю, что вы можете использовать «_» таким же образом, но я не пробовал его)
Чтобы заставить работать следующий код, вам нужно сослаться на сборку sysglobl
и импортировать System.Globalization
namespace.
Приведенный ниже код пытается отменить регистрацию культуры в начале и в конце.После завершения регистрации я загружаю CultureInfo, форматирую дату и отображаю имя и отображаемое имя.
Надеюсь, это полезно.
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" );
}