Учитывая локальные DateTime и lat/lon, как определить часовой пояс и смещение в NodeJs?

В прошлом я реализовал библиотеку С#, которая давала локальные DateTime и lat/lon, позволяла определять часовой пояс и смещение.

Я сделал следующее:

  • загруженные шейп файлы из efele.net/maps/tz
  • импортировал их в SQL Server
  • использовали их для получения tzid из lat/lon

Noda Time Библиотека С# использовалась для получения всей необходимой информации о часовом поясе, смещении и DST. Он возвращает:

  • Смещение в минутах
  • UTC DateTime
  • Олсон /IANA Название часового пояса
  • Имя часового пояса Windows
  • bool IsDST

Теперь мне нужно воспроизвести эту библиотеку в NodeJs + PostgreSQL. Предлагаемый способ сделать это:

  • Импорт http://efele.net/maps/tz shapefiles в PostgreSQL
  • Использование библиотеки Moment TimeZone в NodeJs, подобно тому, как я использовал Noda Time в С#

Известны ли подводные камни, трудности?

Ответы

Ответ 1

Как вы сказали, вам нужен какой-то актуализированный шейп файл, который отображает все часовые пояса по геоколям.

Вы можете использовать модуль, например geo-tz, который поддерживает moment-timezone библиотеку. Или более легкий, например tz-lookup.