Как получить список строк в tzdb, используемых в качестве инициализатора часового пояса?

Итак, я новичок в NodaTime и пытаюсь использовать его для хранения информации о часовом поясе с использованием объекта DateTimeZone.

Я наткнулся на приведенный ниже пример в руководстве пользователя и т. Д., Который дает мне хороший объект DateTimeZone из tzdb, и это здорово.

var london = DateTimeZoneProviders.Tzdb["Europe/London"];

Мой вопрос: как мне получить список строк часового пояса ("Европа/Лондон"), которые используются в файле tzdb. Я огляделся, нигде не нашел. Есть ли где-нибудь стандартный список, на который я могу сослаться? Как это работает? бывший. - какую строку я должен передать для EST?

Спасибо!


person Abhishek    schedule 19.08.2015    source источник


Ответы (1)


Чтобы программно получить идентификаторы часовых поясов, используйте свойство Ids. в IDateTimeZoneProvider. Например, чтобы найти все зоны:

var provider = DateTimeZoneProviders.Tzdb;
foreach (var id in provider.Ids)
{
    var zone = provider[id];
    // Use the zone 
}

Для восточного времени вам, вероятно, нужна Америка/Нью-Йорк.

В более общем смысле эти идентификаторы принадлежат IANA и используются в большинстве систем, отличных от Windows.

person Jon Skeet    schedule 22.08.2015
comment
@EndyTjahjono: у него есть необработанные данные о часовом поясе. Я не знаю какого-либо очень простого способа получить оттуда все идентификаторы без большого количества других данных. - person Jon Skeet; 05.01.2018