如何在Nodejs中使用时区偏移?
我需要下一个stream程:
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 ...
nodejs utils api中有这种可能吗?
您可以使用节点时间 ,如下所示:
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)
Moment.js现在有Moment Timezone
安装 :
npm install --save moment-timezone
用途 :
var Moment = require('moment-timezone'); Moment().tz('America/Los_Angeles').format();
更新:现在有另一个:) https://github.com/mde/timezone-js
启用了时区的库存JavaScriptdate替代版本。 timezoneJS.Date对象与JS Date的API兼容,具有相同的getter和setter方法 – 在任何使用普通JavaScriptdate的代码中,它都能正常工作。
不,那里没有
但是你可以使用moment.js来使它更容易http://momentjs.com/docs/
你仍然需要知道每一个抵消,所以你需要像{"Europe/Amsterdam":2,"Europe/Kiev":3}
请参阅npm中的时区包。 它有一切需要内置的,是纯JS,似乎是最好的时区处理库。
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是纯JavaScript中的MicroJS库,没有提供时区感知datemath和date格式的依赖关系。
- 自标准化时间开始,Timezone使用IANA数据库在世界任何地方确定正确的挂钟时间。
- 时区格式的date与完整的strftime格式实现,包括GNUdate扩展。
- 时区使用RFC 3999datestring表示POSIX时间和本地时间。
- Timezone是一个全function的基于标准的纯JavaScript时间库,用于3K以下的缩小和压缩。
使用moment-timezone.js,这是在不同时区parsing,validation和更改时间的最佳select。