Как мне заполнить список часовых поясов IANA / Olson из Noda Time?

Я использую NodaTime в приложении, и мне нужно, чтобы пользователь выбрал их часовой пояс из выпадающего списка. У меня есть следующие мягкие требования:

1) Список содержит только те варианты, которые являются разумно действительными для настоящего и ближайшего будущего для реальных мест. Исторические, неясные и общие часовые пояса должны быть отфильтрованы.

2) Список должен быть отсортирован сначала по смещению UTC, а затем по названию часового пояса. Надеемся, что это приводит их в порядок, который имеет значение для пользователя.

мы написали следующий код, который действительно работает, но нене имею именно то, что ям после. Фильтр, вероятно, нужно настроить, и яВместо этого смещение должно представлять базовое (не dst) смещение, а не текущее смещение.

Предложения? Рекомендации?

var now = Instant.FromDateTimeUtc(DateTime.UtcNow);
var tzdb = DateTimeZoneProviders.Tzdb;
var list = from id in tzdb.Ids
           where id.Contains("/") && !id.StartsWith("etc", StringComparison.OrdinalIgnoreCase)
           let tz = tzdb[id]
           let offset = tz.GetOffsetFromUtc(now)
           orderby offset, id
           select new
           {
               Id = id,
               DisplayValue = string.Format("({0}) {1}", offset.ToString("+HH:mm", null), id)
           };

// ultimately we build a dropdown list, but for demo purposes you can just dump the results
foreach (var item in list)
    Console.WriteLine(item.DisplayValue);

Ответы на вопрос(2)

Ваш ответ на вопрос