TimeZoneInfo.FindSystemTimeZoneById () не работает для «Стандартного времени залива» - PullRequest
0 голосов
/ 10 декабря 2018

Я использую приведенный ниже код для получения сведений о часовом поясе для «Стандартного времени залива», но его ошибка выбрасывания, как показано ниже

Идентификатор часового пояса «Стандартное время залива» не найден в местномкомпьютер.

ниже приведена строка кода, которую я использую

TimeZoneInfo tZone = TimeZoneInfo.FindSystemTimeZoneById("Gulf Standard Time");

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

1 Ответ

0 голосов
/ 10 декабря 2018

Как указано в комментариях, "Gulf Standard Time" не является действительным идентификатором часового пояса Windows.

Стандартное время залива обычно относится к UTC + 04: 00 без перехода на летнее время, как это наблюдается в Объединенных Арабских Эмиратах.и Оман, , как описано здесь .Соответствующий часовой пояс в Windows отображается с английским отображаемым именем (UTC+04:00) Abu Dhabi, Muscat и имеет соответствующий идентификатор Arabian Standard Time.

. Таким образом, в .NET:

TimeZoneInfo tZone = TimeZoneInfo.FindSystemTimeZoneById("Arabian Standard Time");
Console.WriteLine(tzone.DisplayName);

// prints:  (UTC+04:00) Abu Dhabi, Muscat

Чтобы получитьсписок поддерживаемых часовых поясов, используйте TimeZoneInfo.GetSystemTimeZones() в своем коде .NET и проверьте свойства Id и DisplayName.Кроме того, вы можете вызвать TZUTIL /L в командной строке, чтобы вывести их список.

Кроме того, просто чтобы указать, что все это предполагает, что вы работаете в Windows.Если вы на самом деле используете .NET Core в системах, отличных от Windows (Linux, OSX и т. Д.), Вам следует использовать идентификаторы часовых поясов IANA.В этом случае подойдет либо "Asia/Dubai", либо "Asia/Muscat".

И если ваш код может работать как в системах Windows, так и в системах, отличных от Windows, вам необходимо воспользоваться преимуществами моего TimeZoneConverter библиотека.

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