我有一个以这种格式的字符串日期:
“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?
提前致谢!!!
答案 0 :(得分:3)
它只显示日期,因为Date的toString()方法返回为当前时区格式化的日期。内部表示仍然是时区中立的。试试new Date("2012-07-22T08:00:00Z").toUTCString()
。
Javascript日期有许多使用当前时区或UTC获取和设置值的方法,因此如果需要使用UTC计算或打印,可以使用这些方法。
答案 1 :(得分:1)
我看起来UTC和GMT是同一时区:
答案 2 :(得分:1)
脱离我的头顶:
function dateToUTC( date ) {
return new Date(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
date.getUTCHours(),
date.getUTCMinutes(),
date.getUTCSeconds()
)
};
虽然看起来效率很低......