Solange Sie moment-timezone mit the data for the zones you want initialisiert haben, ist Ihr Code funktioniert wie erwartet.
Sie konvertieren den Moment korrekt in die Zeitzone, die sich in der zweiten Zeile der Ausgabe von momentObj.format()
widerspiegelt.
Durch die Umschaltung auf UTC wird nicht nur der Offset gelöscht, sondern auch die UTC-Zeitzone. Wenn Sie das tun, brauchen Sie den ursprünglichen .tz()
Anruf überhaupt nicht. Sie könnten einfach moment.utc()
tun.
Vielleicht versuchen Sie gerade, die Ausgabeformatzeichenfolge zu ändern? Wenn ja, geben Sie einfach die Parameter, die Sie an die format
Methode wollen:
momentObj.format("YYYY-MM-DD HH:mm:ss")
die letzten Zeilen des Codes In Bezug auf - wenn Sie zu einem Date
Objekt zurück toDate()
verwenden, Sie geben das Verhalten Moment auf. js und gehe zurück zu JavaScript's Verhalten. Ein JavaScript-Objekt Date
wird immer in der lokalen Zeitzone des Computers gedruckt, auf dem es ausgeführt wird. Es gibt nichts Moment. Js kann das tun.
Ein paar andere kleine Dinge:
Während der Moment Konstruktor ein Date
nehmen kann, ist es in der Regel am besten nicht zu verwenden. Verwenden Sie für "jetzt" nicht moment(new Date())
. Verwenden Sie stattdessen einfach moment()
. Beide werden funktionieren, aber es ist unnötig überflüssig. Wenn Sie von einer Zeichenfolge analysieren, übergeben Sie diese Zeichenfolge direkt in Moment. Versuchen Sie nicht zuerst, es zu einem Date
zu analysieren. Sie werden feststellen, dass der Moment-Parser viel zuverlässiger ist.
Zeitzonen wie MST7MDT
sind aus Gründen der Abwärtskompatibilität da. Sie stammen aus POSIX-Zeitzonen, und nur wenige von ihnen sind in den TZDB-Daten enthalten. Sofern nicht unbedingt erforderlich, sollten Sie einen Schlüssel wie America/Denver
verwenden.
Welche Leistung erwarten Sie und welche Ausgabe bekommen Sie? –
4 Reihe erhalten mich so:
(Date object) Time with offset Thu Aug 01 2013 15:23:49 GMT+0300 (Финляндия (лето))
Aber Zeitzone muss MST7MDT sein –