我需要下一个流程:
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)
.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
启用时区的直接替换,用于替换常用 JavaScript Date。 timezoneJS.Date 对象与 JS Date 的 API 兼容,具有 相同的 getter 和 setter 方法 - 它应该在任何代码中正常工作 适用于普通的JavaScript日期。
不,没有
但是你可以利用时刻.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');
时区
- 是纯JavaScript中的MicroJS库,没有依赖项,提供时区感知日期数学和日期格式。
- 时区使用 IANA 数据库来确定自标准化时间开始以来世界上任何地方的任何时间的正确挂钟时间。
- 时区格式化日期完全实现 strftime 格式,包括 GNU 日期扩展。
- 时区使用 RFC 3999 日期字符串表示 POSIX 时间和本地时间。
- 时区是一个功能齐全的基于标准的纯JavaScript时间库,用于3K以下的缩小和gzip。
使用时刻时区.js这是解析、验证和更改不同时区时间的最佳选择。