Javascript日期字符串构造函数更改时区

时间:2012-07-24 14:50:26

标签: javascript

我有一个以这种格式的字符串日期:

  

“2012-07-22T08:00:00Z”

但是当我尝试从该字符串创建日期时:

new Date("2012-07-22T08:00:00Z");  

我明白了:

  

日期{Sun Jul 22 2012 01:00:00 GMT-0700}

看起来它正在将日期的时区更改为本地时区。因为它减少了7小时的时间( GMT-0700

如何在适当的时间( 08:00:00 )保持日期对象的utc?

提前致谢!!!

3 个答案:

答案 0 :(得分:3)

它只显示日期,因为Date的toString()方法返回为当前时区格式化的日期。内部表示仍然是时区中立的。试试new Date("2012-07-22T08:00:00Z").toUTCString()

Javascript日期有许多使用当前时区或UTC获取和设置值的方法,因此如果需要使用UTC计算或打印,可以使用这些方法。

答案 1 :(得分:1)

我看起来UTC和GMT是同一时区:

http://geography.about.com/od/timeandtimezones/a/gmtutc.htm

答案 2 :(得分:1)

脱离我的头顶:

function dateToUTC( date ) { 
    return new Date( 
            date.getUTCFullYear(),
            date.getUTCMonth(),
            date.getUTCDate(),
            date.getUTCHours(),
            date.getUTCMinutes(), 
            date.getUTCSeconds()
    ) 
};

虽然看起来效率很低......