2016-07-29 14 views
0

In der Vergangenheit implementierte ich C# -Bibliothek, die gegeben lokale DateTime und lat/lon, erlaubt eine Zeitzone und Offset zu bestimmen.Gibt lokale DateTime und lat/lon, wie eine Zeitzone und Offset in NodeJs zu bestimmen?

Ich habe folgendes:

  • heruntergeladen Shape-Dateien aus efele.net/maps/tz
  • sie in SQL Server importiert
  • verwendet, um sie von lat/lon zu bekommen TZID

Noda Time Die C# -Bibliothek wurde verwendet, um alle erforderlichen Informationen zu Zeitzone, Offset und DST zu erhalten. Es gibt:

  • Offset in Minuten
  • UTC Datetime
  • Olson/IANA Zeitzone Name
  • Windows-Zeitzone Name
  • Bool ISDST

Jetzt muss ich diese Bibliothek reproduzieren in NodeJs + PostgreSQL. Ist die vorgeschlagene Art und Weise tun:

  • Import http://efele.net/maps/tz Shape-Dateien zu PostgreSQL
  • Verwenden Moment Time-Zone Bibliothek in NodeJS ähnlich, wie ich verwenden Noda Zeit in C#

Gibt es bekannte Gefahren, Schwierigkeiten?

Antwort

1

Wie Sie bereits sagten, benötigen Sie ein aktualisiertes Shapefile, um alle timezones by geo coordinates abzubilden. Sie können ein Modul wie geo-tz verwenden, das nativ moment-timezone Bibliothek unterstützt. Oder ein leichteres wie tz-lookup.

+0

Dario, In geo-tz .tzMoment (lat, lon, [DatumZeit]) dateTime Parameter ist ein * local * dateTime, richtig? Sieht so aus, als hätte Geo-tz bereits implementiert, was ich implementieren würde! Beeindruckend! Ich konnte vor 3 Jahren keine solche gebrauchsfertige C# Bibliothek finden, also habe ich meine eigene mit einer großen Hilfe von @MattJohnson implementiert – vkelman

+1

Ja, "(...) Wenn dateTime angegeben ist, wird' moment-timezone' auf gesetzt die Zeitangabe entsprechend der gefundenen Zeitzone ". – Dario