Comment utiliser le décalage de fuseau horaire dans Nodejs?

J'ai besoin du flux suivant:

var a = new Date(1337324400000, 'Europe/Amsterdam'); //+2h
console.log(a); // for example 12:00 Mon ...
a.setTimeZone('Europe/Kiev'); //+3h
console.log(a); // 13:00 Mon ...

Existe-t-il une telle possibilité dans l'api NodeJS utils?

21
demandé sur Oleg Dats 2012-05-16 13:36:32

5 réponses

Vous pouvez utiliser nœud-temps, comme suit:

var time = require('time');

var a = new time.Date(1337324400000);

a.setTimezone('Europe/Amsterdam');
console.log(a.toString()); // Fri May 18 2012 09:00:00 GMT+0200 (CEST)
a.setTimezone('Europe/Kiev');
console.log(a.toString()); // Fri May 18 2012 10:00:00 GMT+0300 (EEST)
32
répondu Laurent Couvidou 2012-05-30 23:47:28

Moment.js a maintenant Moment Fuseau horaire

Installez:

npm install --save moment-timezone

Utiliser:

var Moment = require('moment-timezone');
Moment().tz('America/Los_Angeles').format();
14
répondu pixelfreak 2014-03-17 05:10:43

Mise à jour: il y en a un autre maintenant:) https://github.com/mde/timezone-js

Un fuseau horaire activé, drop - in remplacement pour le stock JavaScript Date. Les timezoneJS.L'objet Date est compatible API avec JS Date, avec le mêmes méthodes getter et setter - cela devrait fonctionner correctement dans n'importe quel code qui fonctionne avec des Dates JavaScript normales.


Non il n'y en a pas

, Mais vous pouvez utiliser moment.js pour le rendre plus facile http://momentjs.com/docs/

Vous devez toujours connaître chaque décalage, vous aurez donc besoin d'un mappage comme {"Europe/Amsterdam":2,"Europe/Kiev":3}

6
répondu Eldar Djafarov 2012-06-04 05:39:09

Voir le paquet Timezone dans npm. Il a tout le nécessaire intégré et est pur JS et semble être la meilleure bibliothèque de gestion de fuseau horaire disponible.

Https://www.npmjs.com/package/timezone

Http://bigeasy.github.io/timezone/

var tz = require('timezone/loaded'),
    equal = require('assert').equal,
    utc;

// Get POSIX time in UTC. 
utc = tz('2012-01-01');

// Convert UTC time to local time in a localize language. 
equal(tz(utc, '%c', 'fr_FR', 'America/Montreal'),
      'sam. 31 déc. 2011 19:00:00 EST');
  • Timezone est une bibliothèque MicroJS en JavaScript pur sans dépendances qui fournit des calculs de date et un formatage de date conscients du fuseau horaire.
  • Timezone utilise la base de données IANA pour horloge murale temps partout dans le monde pour tout moment depuis l'aube du temps standardisé.
  • timezone formate les dates avec une implémentation complète des formats strftime, y compris les extensions de date GNU.
  • Timezone représente l'heure en temps POSIX et l'heure locale à l'aide de chaînes de date RFC 3999.
  • Timezone est une bibliothèque de temps basée sur des normes complètes en JavaScript pur pour moins de 3K minifié et gzippé.
2
répondu Samuel Neff 2015-03-08 19:23:26

Utilisez moment-timezone.js, c'est une meilleure option pour analyser, valider et changer les temps sur différents fuseaux horaires.

0
répondu Sudhakar Reddy 2015-06-08 04:39:45