Я ищу возможность реализовать функцию с сигнатурой примерно так:
bool IsTimeZoneValid(string countryCode, DateTime localTime);
Цель состоит в том, чтобы определить, есть ли в стране часовой пояс, в котором будет действовать местное время, учитывая, что мы знаем текущее время UTC. Скажем, ради аргумента, что «действительный» означает, что при преобразовании в UTC время составляет +/- 30 минут от того, что мы считаем временем.
Например, допустим, что в настоящее время 03/08/2009 18:25:00 UTC, а затем при следующем вызове метода для Австралии он должен вернуть true
, поскольку это допустимое время в зоне "Восточное стандартное время" :
IsTimeZoneValid("AU", DateTime.Parse("04/08/2009 03:25:00"));
Однако следующий звонок для Франции должен завершиться неудачей, поскольку это недопустимое время во часовом поясе Франции.
IsTimeZoneValid("FR", DateTime.Parse("04/08/2009 03:25:00"));
Это должно быть точным, учитывать летнее время и т. Д.
.NET 3.5 включает новый класс TimeZoneInfo
, который может многое сделать для меня, если я знаю, какие часовые пояса существуют в конкретной стране, но я не могу найти какой-либо встроенный поиск для этого , Я что-то упустил или мне придется вручную создать таблицу сопоставлений страны и часового пояса?
Повторим, мой вопрос: учитывая код страны, как я могу получить список часовых поясов. Кроме того, есть ли другой способ приблизиться к этому, что я пропустил?