如何在Javascript中获取时区中的日期和时间的UTC值?

时间:2013-10-21 21:13:23

标签: javascript date timezone

我希望能够像“2011年圣诞节洛杉矶的午夜”一样创建一个Date对象。

我使用了moment.js,这很棒,而moment-timezone,甚至更好,但默认的Date类和时刻构造函数都没有将时区作为参数。

我已经能够通过使用格式化的RFC2822字符串来捏造它,如下所示:

 d = new Date("12-25-2011 PST")

...但它要求我知道12月25日是标准时间。这给出了不同的答案:

d = new Date("12-25-2011 PDT")

理想情况下,我想使用像“America / Los_Angeles”这样的地理式时区。

2 个答案:

答案 0 :(得分:1)

查看时刻时区#11#25

如果您从GitHub源获得最新的开发,您可以这样做:

moment.tz('2011-12-25T00:00:00','America/Los_Angeles').utc().format()

尚未发布的唯一原因是因为我们仍在根据#27决定如何处理模糊或无效的输入。

答案 1 :(得分:1)

好的,我想我知道怎么做。我正在使用来自npm的优秀timezone包。这是一个粗略的想法:

var tz = require("timezone");

var dateInZone = function(dt, zone) {
    return new Date(tz(dt, zone, require("timezone/"+zone), "%FT%T%^z"));
};

console.log(dateInZone([2011, 12, 25], "America/Los_Angeles"));