将date转换为nodejs中的ISOString时,时间会发生变化

我有我的数据库中有这样的格式的datestring:

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

我想把它转换成一个ISOString和IM目前正在做:

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

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

 2013-11-12T17:14:46.000Z 

我怎样才能避免这一点?

简短的回答:时间转换为UTC,您的原始时间显示在UTC + 1,因此一个小时的差异。


Date.toISOString()方法将date转换为ISO 8601格式的string。 请注意,示例中的返回date以Z2013-11-12T17:14:46.000Z 。 根据Mozilla文档和Wikipedia :

如果时间是UTC,则在没有空格的时间之后直接添加Z. Z是零UTC偏移的区域标志符