CurrentUICulture
CultureInfo.CurrentUICulture не меняет
формат чисел и дат - за это отвечает
CurrentCulture.
Число можно форматировать через
InvariantCulture
независимо от UI-культуры. После смены
в примере значение возвращают в finally.
Синтаксис
CultureInfo.CurrentUICulture =
CultureInfo.GetCultureInfo("ru-RU");
Пример
Давайте поставить UI-культуру "ru-RU"
и прочитать Name:
using System;
using System.Globalization;
class Program
{
static void Main()
{
CultureInfo saved = CultureInfo.CurrentUICulture;
try
{
CultureInfo.CurrentUICulture =
CultureInfo.GetCultureInfo("ru-RU");
string res = CultureInfo.CurrentUICulture.Name;
Console.WriteLine(res);
}
finally
{
CultureInfo.CurrentUICulture = saved;
}
}
}
Результат выполнения кода:
"ru-RU"
Пример
Давайте форматировать число через
InvariantCulture при "ru-RU" UI:
using System;
using System.Globalization;
class Program
{
static void Main()
{
CultureInfo saved = CultureInfo.CurrentUICulture;
try
{
CultureInfo.CurrentUICulture =
CultureInfo.GetCultureInfo("ru-RU");
string res = 1.5.ToString(
CultureInfo.InvariantCulture);
Console.WriteLine(res);
}
finally
{
CultureInfo.CurrentUICulture = saved;
}
}
}
Результат выполнения кода:
"1.5"
Пример
Давайте убедиться, что UI-культура
не подменяет CurrentCulture:
using System;
using System.Globalization;
class Program
{
static void Main()
{
CultureInfo savedUi = CultureInfo.CurrentUICulture;
CultureInfo saved = CultureInfo.CurrentCulture;
try
{
CultureInfo.CurrentUICulture =
CultureInfo.GetCultureInfo("ru-RU");
CultureInfo.CurrentCulture =
CultureInfo.GetCultureInfo("en-US");
string res = 1.5.ToString();
Console.WriteLine(res);
}
finally
{
CultureInfo.CurrentUICulture = savedUi;
CultureInfo.CurrentCulture = saved;
}
}
}
Результат выполнения кода:
"1.5"
Смотрите также
-
CurrentCulture,
культура форматирования -
CultureInfo,
класс культуры -
IFormatProvider,
поставщик правил -
ToString,
формат с культурой