Что я сделал
Чтобы получить доступ к списку всех часовых поясов, я использовал пакет Noda Time. Я использовал CountryCode, чтобы получить часовой пояс следующим образом:
Код: Выделить всё
var zones = TzdbDateTimeZoneSource.Default.ZoneLocations;
var countryCode = "US";
var city = "New_York";
// query zones using country code
var zoneForCountryCode = zones
.Where(x => x.CountryCode == countryCode)
.Select(z => z.ZoneId)
.ToList();
foreach (var zone in zoneForCountryCode) Console.WriteLine(zone);
Код: Выделить всё
America/New_York
America/Detroit
America/Kentucky/Louisvill
... and more
Код: Выделить всё
var zones = TzdbDateTimeZoneSource.Default.ZoneLocations;
var countryCode = "US";
var city = "New_York";
var zoneForCityAndCountryCode = zones
.FirstOrDefault(z => z.CountryCode == countryCode && z.ZoneId.EndsWith(city, StringComparison.OrdinalIgnoreCase))
?.ZoneId;
Подробнее здесь: https://stackoverflow.com/questions/799 ... e-cityname
Мобильная версия