Получите часовой пояс, используя код страны + название города.C#

Место общения программистов C#
Ответить
Anonymous
 Получите часовой пояс, используя код страны + название города.

Сообщение Anonymous »

Я создаю систему бронирования, где пользователи могут бронировать столики в ресторане. Чтобы проверить, открыт ли ресторан, мне нужно получить часовой пояс, в котором расположен ресторан.
Что я сделал
Чтобы получить доступ к списку всех часовых поясов, я использовал пакет 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
Однако мне нужно получить часовой пояс определенного города внутри страны, которую представляет CountryCode. Итак, я попытался включить город в запрос, чтобы избавиться от других часовых поясов, следующим образом:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»