4

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

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

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

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

我得到:

日期 {2012 年 7 月 22 日星期日 01:00:00 GMT-0700}

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

如何在正确的时间(08:00:00)使用 UTC 保存日期对象?

提前致谢!!!

4

3 回答 3

3

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

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

于 2012-07-24T14:59:11.297 回答
1

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

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

于 2012-07-24T14:54:47.333 回答
1

在我的头顶上:

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

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

于 2012-07-24T15:02:26.553 回答