2016-10-20 5 views
0

- Current default time zone: 'US/Pacific-New'
-Lokale Zeit und UTC alle gut aussehen.
- $date gibt PDT einfach gut.Knoten nicht lokale Zeitzone auf Debian Jenny

aber new Date im Knoten gibt immer noch UTC Zeit?
new Date().getTimezoneOffset() gibt richtig 420 obwohl

Ich dachte Knoten für lokale Zeit new Date Operationen verwendete ebenso wie der Browser, aber ich erhalte immer 2016-10-20T05:07:45.341Z die UTC-Zeit ist?

(Knoten ver 6.7.0)

+0

Was meinst du mit "gibt UTC Zeit" genau? Meinst du, wenn du das 'Date()' in eine Zeichenkette umwandelst? Bitte zeigen Sie einen Beispielwert und was Sie stattdessen erwartet haben. –

+0

Konsole.log und Befehlszeile? – House3272

+0

Rechts. Nur um klar zu sein, kümmert man sich * nur * um die String-Darstellung eines 'Datums', oder? Ein "Date" -Objekt hat keine Zeitzone - Sie können es in jeder beliebigen Zeitzone formatieren, aber es ist nur eine Anzahl von Millisekunden seit der Unix-Epoche. Persönlich für Server-Logs würde ich bevorzugen *, dass in UTC sein - aber Sie können es immer in einer anderen Zeitzone formatieren, wenn Sie möchten. –

Antwort

1

Die Date Objekt speichert Zeit in Millisekunden seit der UNIX-Epoche (ohne Schaltsekunden). Dies ist der Wert, den Sie sehen, wenn Sie .getTime() oder .valueOf() aufrufen. Das ist ein reiner UTC-basierter Wert ohne Zeitzone.

Eine beliebige Zeichenfolgendarstellung ist das Ergebnis von Aufrufen von toString, toISOString usw. oder impliziter Zeichenfolgenkonvertierung, die beim Anmelden an der Debug-Konsole auftritt.

Die Implementierungen der Konsolen-Debugausgabe können in den verschiedenen Umgebungen variieren. Einige zeigen eine Zeichenfolge in Ortszeit (Chrome, IE, Edge) und einige zeigen eine Zeichenfolge in UTC (Node, FF) an.

Wenn Sie das lokale Datum/die lokale Uhrzeit in Node/FF ohne Bibliotheken anzeigen möchten, rufen Sie new Date().toString(). Die Ausgabe erfolgt in Ortszeit.