Подтвердить что ты не робот

Получить Windows TimeZoneInfo из широты и долготы

В веб-приложении у меня есть люди, которые вводят свой адрес, затем я использую API геокода Google, чтобы получить их широту и долготу. Затем я хотел бы получить их имя часового пояса Windows, используя эти координаты, чтобы я мог справиться с Летнее время с помощью объекта .Net TimeZoneInfo.

Я играл с несколькими доступными веб-службами часового пояса, чтобы получить имя часового пояса, например:

Проблема заключается в том, что все они возвращают либо только смещение от GMT, либо имя часового пояса TZID (a.k.a. Olson), а не имя часового пояса Windows.

В приведенной ниже ссылке есть ссылка, что переводит из Windows в имена TZID, но не в противоположном направлении, так как многие из имен TZID отсутствуют. Например, если TZID, который я получаю с первого шага, это "Африка/Лусака", тогда таблица не найдет эквивалентное имя часового пояса Windows.

Итак, мой вопрос: знает кто-нибудь о службе, которая может вернуть имя часового пояса Windows через lat/lon, или если есть полная служба перевода или перевода для преобразования между двумя форматами именования

Примечание. Я рассмотрел все похожие вопросы здесь, но никто не полностью решил эту проблему.

4b9b3361

Ответ 2

Одним из способов решения проблемы было бы получить имя Олсона, а затем использовать Noda Time для выполнения соответствующих вычислений часового пояса, поскольку это основано на Олсоне имена.

Мы еще не закончили работу с Noda Time, но мы все ближе и ближе приближаемся к версии 1.0, и вы всегда можете ограничить себя часовым поясом, если хотите, и сделать все остальное. СЕТЬ. Это изолирует вас от любых областей, которые мы все еще сортируем, таких как форматирование, синтаксический анализ и лучший API для раскрытия для выполнения арифметики. По общему признанию, я хотел бы надеяться, что остальная часть API обратится к вам и соблазнит вас... или что вы хотите прокомментировать ее и сообщить нам, как вы хотите ее использовать:)

Я надеюсь добавить DateTime и DateTimeOffset конверсии в кодовую базу в ближайшие пару дней - если вы можете пинговать список рассылки именно тем, что вам нужно, я могу попытаться разместить вас.

Извините, что это всего лишь обходное решение, а не полное исправление. Я буду исследовать предоставление дополнительной информации о названии имени зоны Windows в Noda Time, которая также использует CLDR, но с дополнительной информацией из базы данных Olson мы можем легко найти эквиваленты.