【问题标题】:Time changes when converting date into ISOString in nodejs在nodejs中将日期转换为ISOString时的时间变化
【发布时间】:2013-11-13 03:46:18
【问题描述】:

我的数据库中有一个日期字符串,格式如下:

Tue Nov 12 2013 18:14:46 GMT+0100 (CET)

我想将其转换为ISOString,我目前正在这样做:

var iso = new Date(val.text_date).toISOString();

但是由于某种原因,输出时间向后移动了 1 小时? 这是我得到的输出:

2013-11-12T17:14:46.000Z

我怎样才能避免这种情况?

【问题讨论】:

    标签: node.js datetime timezone


    【解决方案1】:

    简答:时间转换成UTC,你原来的时间显示为UTC+1,所以相差一小时。


    Date.toISOString() 方法将日期转换为 ISO 8601 格式的字符串。请注意,示例中返回的日期以Z:2013-11-12T17:14:46.000Z 结尾。根据the Mozilla documentationWikipedia

    如果时间为 UTC,则在时间后直接添加 Z,不带 空间。 Z 是零 UTC 偏移的区域指示符

    【讨论】:

    • 存储日期时间对象的正确区域。这样,当一个变量为 UTC+1 而另一个变量为 UTC-6 时,您就不会遇到奇怪的问题。要显示它,请使用.toString() methodtoLocaleTimeString()
    猜你喜欢
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    相关资源
    最近更新 更多