Как получить название страны от TimeZoneInfo - PullRequest
0 голосов
/ 05 сентября 2018

Если у нас есть TimeZoneInfo, как мы можем получить название страны для выбранного часового пояса.

Пример:

Asia/Singapore = Singapore
Asia/Tokyo     = Tokyo
Europe/Moscow  = Russia

Спасибо

1 Ответ

0 голосов
/ 05 сентября 2018

Не вижу встроенного способа сделать это. Класс TimeZoneInfo не имеет свойства или метода, который возвращает код страны. Смотри: https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo?view=netframework-4.7.2

Поведение TimeZoneInfo также зависит от операционных систем, в которых он работает. Смотрите ниже:

Запуск следующего кода в NET Core 2.1 в Windows 10:

TimeZoneInfo localZone = TimeZoneInfo.Local;
Console.WriteLine("Local Time Zone ID: {0}", localZone.Id);
Console.WriteLine("   Display Name is: {0}.", localZone.DisplayName);
Console.WriteLine("   Standard name is: {0}.", localZone.StandardName);
Console.WriteLine("   Daylight saving name is: {0}.", localZone.DaylightName);

Дает вывод:

Local Time Zone ID: Central Europe Standard Time
Display Name is: (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague.
Standard name is: Central Europe Standard Time.
Daylight saving name is: Central Europe Summer Time.

Запуск того же кода NET Core 2.1 на macOS High Sierra:

Local Time Zone ID: Europe/Budapest
Display Name is: GMT+01:00.
Standard name is: GMT+01:00.
Daylight saving name is: GMT+02:00.

Ближайшее приближение, которое вы можете реализовать:

  1. Загрузить последнюю копию базы данных tz. Вы можете использовать https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

  2. Скачать копию кодов стран. В Википедии есть список: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

  3. Реализуйте код, который выполняет поиск в вашей базе данных TZ по имени TZ, например «Европа / Будапешт» Это дает вам код страны. Затем выполните поиск в вашей базе данных стран с помощью двухбуквенного кода страны, который даст вам название страны.

Этот метод не кроссплатформенный! И ваша заявка должна обновляться при изменении базы данных tz списка кодов стран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...