Ich verwende die moment-timezone v.0.5.3-2016c
Bibliothek die UTC für eine Zeitzone Offset zu berechnen:Moment Zeitzone: UTC Offset Differenz
var z = moment().tz("America/Los_Angeles");
z.utcOffset(); // -420 mins or -7 hours
// check if DST is shifted
z.isDSTShifted(); // false
Aber hier https://en.wikipedia.org/wiki/List_of_tz_database_time_zones die UTC für die America/Los_Angeles
ist -8 Stunden versetzt.
Moment verwendet die tzdb v.2016c und die Wikipedia-Artikel zu.
Nun, warum gibt es hier zwei verschiedene Ergebnisse? Und welches Ergebnis ist richtig?
S.S .: Es gibt auch den gleichen Unterschied für America/Kentucky/Monticello
und Europe/Tiraspol
.
'-7' ist zur Zeit die richtige Antwort (29. April 2016). Die Frage ist, warum die Moment '.ISDSTOffset()' Routine das nicht weiß. Ich denke, es hat etwas damit zu tun, wie Moment den Date-Wert in Besitz nimmt; Wenn es von einem nativen Date-Objekt stammt, kann es möglicherweise nicht erkennen. – Pointy
[Siehe diesen Fehlerbericht.] (Https://github.com/moment/moment-timezone/issues/131) – Pointy
[Auch diese ältere SO-Frage.] (Http://stackoverflow.com/questions/26063400/check -if-date-isdstshifted) – Pointy