所以,我需要以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"
所以它在另一个小时改变了。 我该怎么做才能避免这种时间的变化?
答案 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
对象足够聪明,可以通过更改小时将其转换为具有正分钟的新时间。