Мне нужен список сопоставлений городов для timezones – лучший способ получить его?

У меня есть список городов, штатов / провинций и стран, и мне нужно быстро найти их соответствующие временные точки. В частности, мне нужно знать, к какой Windows TimeZone они относятся. До сих пор это был сложный процесс, потому что нет простого способа передать город чему-то и вернуть часовой пояс (временной промежуток является смещением и зависит от того, поддерживает ли часовой пояс Летнее время).

Текущий stream должен использовать http://www.batchgeocode.com, чтобы получить широту / долготу города (который действительно вызывает службу Yahoo), а затем вызвать http://www.EarthTools.org, чтобы получить письмо с часовым поясом, который соответствует смещению. Проблема в том, что служба yahoo иногда возвращает плохую долготу / широту, а earthtools.org не знает много о DST-информации, поэтому сопоставление с правильным идентификатором TimeZone является утомительным ручным процессом.

Я не могу быть первым человеком, который сделал это – знает ли кто-нибудь лучший способ или какой-то список, в котором есть информация, в которой я нуждаюсь?

Благодарю.

Интересный вопрос! Эти три других сообщения SO ( 41504 , 55901 и 237023 ) упоминают пару потенциальных клиентов. Существует firebase database Олсона (см. Запись в Википедии для описания), но она выглядит более алгоритмической / программной (например, если вы знаете имя графства, для некоторых стран в штате Индиана есть правило).

Я попытался взглянуть на EarthTools, но это не удалось для St.Pierre / Miquelon , одного из хороших тестовых случаев (-3: 00, а 3: 30 для близлежащего Ньюфаундленда, что говорит EarthTools).

Некоторые перспективные варианты: worldtimeengine.com имеет бесплатную интерактивную версию и API, который выглядит недорогим (5000 запросов на британский фунт), но API охватывает только латы, длинные запросы в качестве входных данных (а не местоположение в качестве входных данных, что является чем-то интерактивным версия есть).

Лучшее руководство: я бы посмотрел на geonames.org, который выглядит так, как будто у него есть хороший богатый API, который вы можете использовать, и у них есть бесплатная (медленная) версия и коммерческая версия для лучшей производительности.

ps вот несколько хороших тестовых примеров (из worldtimezone.com и списка часовых поясов Википедии, также показана карта часовых поясов ):

  • Каракас, Венесуэла (-4: 30)
  • Гандер, Ньюфаундленд (-3: 30)
  • Тегеран, Иран (+3: 30)
  • Кабул, Афганистан (+4: 30)
  • Катманду, Непал (+5: 45)
  • Янгон, Мьянма (+6: 30)
  • Острова Чатем, Новая Зеландия (+12: 45)
  • Остров Пасхи (-6)
  • Сен-Пьер и Микелон (-3)
  • Стэнли, Фолклендские острова (-4)
  • Эвансвилл, штат Индиана (-6 = Центральный)
  • Онтарио, Орегон (-7 = Гора)

time-timezone – это библиотека JavaScript для расчета часовых поясов.

Все их данные о времени, связывающие страны, временные интервалы и смещения, доступны в формате json .

Мы используем .NET C # MVC, и нам нужен список Windows Timezone для каждой страны.

Так что для каждого регистрирующего пользователя мы можем установить часовой пояс автоматически.

Большинство онлайн-баз данных предоставляют часовые пояса IANA, и их трудно сопоставить с конкретной страной.

Используя NodaTime, нам удалось создать Json, в котором перечислены следующие записи.

CountryName 2LetterIsoCountryCode 3LetterIsoCountryCode IANATimezones WindowsTimezones 

Вы можете скачать созданный JSON здесь .

Я могу помочь со второй частью вашего текущего рабочего процесса. Я написал библиотеку Java, которая отображает lat / long в timezones, где firebase database закодирована в исходном коде.

Исходный код в основном представляет собой огромное дерево операторов if: if (lat> = -33.0) if (lng <-151.5) ... else ... и так далее. Это всего лишь один класс. Поэтому, если вы используете C #, было бы тривиально его переносить.

http://www.edval.biz/mapping-lat-lng-s-to-timezones

Точность до 22 км.

  • Как изменить часовой пояс mysql в java-соединении
  • Как получить текущую дату и время вашего часового пояса в Java?
  • Список идентификаторов Timezone для использования с FindTimeZoneById () в C #?
  • Сопоставление почтового индекса США с часовым поясом
  • Названия часовых поясов с одинаковыми свойствами дают разные результаты при применении к метке времени
  • Как хранить дату и время и временные метки в часовом поясе UTC с JPA и Hibernate
  • Как конвертировать datetime в timestamp с помощью C # /. NET (игнорируя текущий часовой пояс)
  • Как конвертировать дату с одного часового пояса в другой часовой пояс
  • Java: Как вы конвертируете временную метку UTC в локальное время?
  • Как использовать пользовательское время в браузере для проверки разницы во времени между клиентом и сервером
  • Как перевести между часовыми поясами Windows и IANA?
  • Interesting Posts
    Давайте будем гением компьютера.