我希望能够像“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”这样的地理式时区。
答案 0 :(得分:1)
如果您从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"));