JavaScript - 以ISO格式转换时更改小时数

时间:2014-03-07 13:18:13

标签: javascript date

所以,我需要以ISO格式转换这种日期:

"05-Mar-13 17:00:00.000000"

但是当我做这样的事情时:

var Time = (new Date("05-Mar-13 17:00:00.000000")).toISOString().replace('Z', Milliseconds);

我在另一个小时变量时间:

"2013-03-05T16:00:00.000000"

所以它在另一个小时改变了。 我该怎么做才能避免这种时间的变化?

1 个答案:

答案 0 :(得分:0)

ISO格式应该将时间转换为UTC

您的浏览器假设您传递Date构造函数的时间基于您当地时间,据称比UTC晚一个小时。

要解决此问题,您可以使用

new Date().getTimezoneOffset();

将返回以分钟为单位的时间偏移量。在您的情况下,它将返回-60

一个完整的例子:

function getTime() {
    var date = new Date("05-Mar-13 17:00:00.000000")
    date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return date.toISOString();
}

请注意,这可以将时间分钟设置为负值,但Date对象足够聪明,可以通过更改小时将其转换为具有正分钟的新时间。