/ / Jak mogę ustawić domyślną strefę czasową w node.js? - node.js, strefa czasowa

Jak ustawić domyślną strefę czasową w pliku node.js? - node.js, strefa czasowa

Jak ustawić domyślną strefę czasową w node.js?

Odpowiedzi:

75 dla odpowiedzi nr 1

Według ten wątek grupy google, możesz ustawić zmienną środowiskową TZ przed wywołaniem jakichkolwiek funkcji daty. Właśnie przetestowałem to i działa.

> process.env.TZ = "Europe/Amsterdam"
"Europe/Amsterdam"
> d = new Date()
Sat, 24 Mar 2012 05:50:39 GMT
> d.toLocaleTimeString()
"06:50:39"
> ""+d
"Sat Mar 24 2012 06:50:39 GMT+0100 (CET)"

Możesz jednak „zmienić strefę czasową później, ponieważ do tego czasu Node już przeczytał zmienną środowiskową.


31 dla odpowiedzi nr 2

Innym podejściem, które wydawało mi się działać przynajmniej w środowisku Linux, jest uruchamianie aplikacji Node.js w następujący sposób:

env TZ="Europe/Amsterdam" node server.js

Powinno to przynajmniej zapewnić poprawne ustawienie strefy czasowej już od początku.


22 dla odpowiedzi nr 3

Niestety, oprawa process.env.TZ nie działa naprawdę dobrze - w zasadzie jest nieokreślony, gdy zmiana będzie skuteczna).

Zatem ustawienie strefy czasowej systemu przed uruchomieniem węzła jest jedyną właściwą opcją.

Jeśli jednak nie możesz tego zrobić, powinno być możliwe użycie czas węzła jako obejście: uzyskaj godziny w czasie lokalnym lub UTC i przekonwertuj je na żądaną strefę czasową. Widzieć Jak korzystać z przesunięcia strefy czasowej w Nodejs? dla szczegółów.


10 dla odpowiedzi № 4

Rozwiązanie env TZ="Europe/Amsterdam" node server.js z @uhef działa w przypadkach, gdy twoja aplikacja nie działa z rozwidlonym procesem, ale gdy pracujesz z rozwidlonym procesem, szczególnie gdy uruchamiasz swoją aplikację za pomocą narzędzia budowlanego, takiego jak łyk , Komenda gulp przejmie wartości env, ale proces stworzony przez łyk nie (twoja aplikacja).

Aby rozwiązać ten problem, musisz:

$ export TZ="Europe/Amsterdam"; gulp myTask

Spowoduje to ustawienie TZ zmienna środowiskowa dla całego rozpoczętego procesuw konsoli, nad którą pracujesz, uwzględniono cały proces podciągów wykonywany po poleceniu gulp w tej samej konsoli bez konieczności wykonywania ich z prefiksem export TZ="Europe/Amsterdam"; jeszcze raz.


4 dla odpowiedzi № 5

Oto w 100% działający przykład uzyskiwania niestandardowej strefy czasowej Data Time w NodeJs bez użycia zewnętrznych modułów

  var nDate = new Date().toLocaleString("en-US", {
timeZone: "Asia/Calcutta"
});

3 dla odpowiedzi № 6

Możesz wziąć strefa czasowa. Pozwala ustawić lokalizację, a także dba o czas letni.


2 dla odpowiedzi № 7

Oto odpowiedź dla osób wdrażających aplikację Node.js na Amazon AWS Elastyczna fasola. Nigdzie nie widziałem tego udokumentowanego:

Pod Configuration -> Software -> Environment Properties, po prostu ustaw parę wartości klucza TZ i twoja strefa czasowa, np. America/Los Angelesi Zastosuj zmianę.

Możesz zweryfikować efekt, wysyłając new Date().toString() w aplikacji Node i zwracając uwagę na przyrostek strefy czasowej.


1 dla odpowiedzi № 8

Ustaw strefę czasową serwera i użyj synchronizacji NTP. Oto jedno lepsze rozwiązanie do zmiany czasu serwera.

Aby wyświetlić strefy czasowe

timedatectl list-timezones

Aby ustawić strefę czasową

sudo timedatectl set-timezone America/New_York

Sprawdź strefę czasową

timedatectl

0 dla odpowiedzi № 9

Wiem, że ten wątek jest bardzo stary, ale myślę, że to pomoże każdemu, kto wyląduje tutaj z google, jak ja.

W GAE Flex (NodeJs) można ustawić zmienną środowiskową TZ (ta, która zarządza wszystkimi strefami czasowymi dat w aplikacji) w pliku app.yaml, zostawiam wam tutaj przykład:

app.yaml

# [START env]
env_variables:
# Timezone
TZ: America/Argentina/Buenos_Aires