Comment puis-je régler le fuseau horaire par défaut dans node.js?
Comment dois-je configurer le fuseau horaire par défaut dans node.js?
- Assez sûr que vous ne pouvez pas vraiment le faire. Changer les systèmes paramètres de fuseau horaire.
- thejh est droit, vous ne pouvez pas modifier le fuseau horaire. Utiliser un JS de la bibliothèque (comme moment.js) et ajouter / soustraire des heures à la place.
- La méthode la plus simple et la bonne façon de le faire est de simplement modifier votre fuseau horaire du système.
- Ce sont des observations utiles, mais la plupart du temps vous n'êtes pas le responsable du système 😉
Vous devez vous connecter pour publier un commentaire.
Selon ce groupe google thread, vous pouvez définir la variable d'environnement TZ avant d'appeler toutes les fonctions de date. Viens de tester et cela fonctionne.
Vous ne pouvez pas changer le fuseau horaire par la suite, car le Nœud a déjà lu la variable d'environnement.
process.env.TZ = 'Europe/Amsterdam'
je pense "bien, maintenant où puis-je trouver une liste de toutes les valeurs valides que je peux le mettre?" et je ne trouve pas, à chaque fois.zone.tab
fichier dans l'archive.Une autre approche qui semblait fonctionner pour moi au moins en environnement Linux pour exécuter votre Node.js application comme ceci:
Cela devrait au moins s'assurer que le fuseau horaire est défini correctement dès le début.
Malheureusement, paramètre
processus.env.TZ
ne fonctionne pas vraiment bien - en gros, c'est de durée indéterminée lorsque le changement sera effectif).Donc le réglage du système de fuseau horaire avant le nœud de départ est votre seule option.
Toutefois, si vous ne pouvez pas le faire, il devrait être possible d'utiliser nœud-temps comme une solution de contournement: obtenez votre temps dans le local ou à l'heure UTC, et de les convertir en le fuseau horaire souhaité. Voir Comment utiliser le décalage horaire dans Nodejs? pour plus de détails.
Ici est 100% de travail exemple pour obtenir personnalisé fuseau horaire Date Heure dans NodeJs sans l'aide des modules externes:
JS:
La solution
env TZ='Europe/Amsterdam' node server.js
de @uhef œuvres dans le cas où votre application ne fonctionne pas avec fourche processus, mais quand vous travaillez avec des fourches, en particulier lorsque vous lancez votre application avec un outil de construction comme gulp , la commandegulp
prendra l'env de valeurs, mais le processus créé par gulp pas (votre application).Pour résoudre ce problème, vous avez à faire:
L'
TZ
variable d'environnement pour tous les processus a commencé dans la console, vous travaillez sur, inclus tous les subsequents processus exécuté après le gulp commande dans la même console sans avoir besoin de les exécuter avec le préfixeexport TZ="Europe/Amsterdam";
de nouveau.Définir le serveur de fuseau horaire et d'utiliser NTP synchronisation.
Voici une meilleure solution pour changer de serveur de temps.
À la liste des fuseaux horaires
Pour définir le fuseau horaire
Vérifier fuseau horaire
Je préfère utiliser le fuseau horaire UTC pour mes serveurs et bases de données. Toutes les conversions doivent être traitées sur le client.
Nous pouvons faire servir de moment.js sur le côté client.
Il sera facile de maintenir de nombreuses instances,
Voici une réponse pour ceux déploiement d'un Node.js demande à Amazon AWS Elastic Beanstalk. Je n'ai pas vu cette documenté nulle part ailleurs:
Sous
Configuration -> Software -> Environment Properties
, il suffit de régler la valeur de la clé de paireTZ
et votre fuseau horaire par exempleAmerica/Los Angeles
, et Appliquer la modification.Vous pouvez vérifier l'effet de la sortie
new Date().toString()
dans votre Nœud de l'application et de prêter attention à l'heure de la zone suffixe.Je sais que ce fil est très vieux, mais je pense que cela pourrait aider quelqu'un qui a atterri ici, à partir de google comme moi.
En FGA Flex (NodeJs), vous pouvez définir la variable d'environnement TZ (celui qui gère tous les fuseaux horaires dans l'app) dans l'application.fichier yaml, je vous laisse ici un exemple:
app.yaml
Vous pouvez prendre moment fuseau horaire. Il vous permet de définir votre position et prend également soin de l'heure d'été.
Date
ou d'autres builtin modules.Pour node.js sur Windows, vous pouvez effectuer les opérations suivantes:
Installer plein icu si elle a été installée, qui s'applique à la date de paramètres régionaux correctement
npm i full-icu
ou dans le monde:
npm i -g full-icu
Utilisation toLocaleString() dans votre code, par exemple:
new Date().toLocaleString('en-AU', { timeZone: 'Australia/Melbourne' })
Cela donnera quelque chose comme:
25/02/2019, 3:19:22 pm
. Si vous préférez les 24 heures, "en-GB" va produire:25/02/2019, 15:19:22
Pour node.js comme Azure web app, en plus des paramètres de l'application de WEBSITE_TIME_ZONE, vous devez également définir NODE_ICU_DATA, par exemple
<your project>\node_modules\full-icu
, bien sûr, après que vous avez fait le mnp, j'ai plein d'icu. Le package d'installation à l'échelle mondiale sur Azure n'est pas suggéré que ce répertoire est temporaire et peut être rayé de la carte.Réf.:
1. NodeJS ne pas appliquer la date de paramètres régionaux correctement
dans moment.js vous pouvez soit définir defualt timezone
ou vous pouvez ajouter/soustraire minutes à l'UTC