Javascript 时刻时区现在在当地时间的基础上增加一小时

Javascript 时刻时区现在在当地时间的基础上增加一小时,javascript,momentjs,moment-timezone,Javascript,Momentjs,Moment Timezone,当我尝试使用本地时间格式化日期时,我遇到了一个问题(以前没有遇到过): var dateStartFormat = "2021-1-8 08:00" var romeStart = moment.tz(dateStartFormat, "Europe/Rome"); var romeStartFormat = romeStart.format(); romeStartFormat应该给我:2021-01-08T08:00:00+01:0

当我尝试使用本地时间格式化日期时,我遇到了一个问题(以前没有遇到过):

   var dateStartFormat = "2021-1-8 08:00"
   var romeStart = moment.tz(dateStartFormat, "Europe/Rome");
   var romeStartFormat = romeStart.format();
romeStartFormat应该给我:2021-01-08T08:00:00+01:00 相反,他加了一个小时,给了我:2021-01-08T**09:00:**00+01:00


我没有更改代码中的任何内容,直到几天前它才起作用。

您应该将格式添加到
momnet.tz()


您应该将格式添加到
momnet.tz()

“几天前”您可能还处于12月底,因此时间戳可能类似于
“2020-12-28 08:00”
。现在在一月份,您会得到一个时间戳,如
“2021-1-8 08:00”
,它不是momentjs的有效输入格式。Momentjs希望输入RFC2822或ISO格式,因此日和月都必须用两位数字表示(如果<10,则前导0)。或者,您还可以为传递的时间戳提供formatspecifier,以便momentjs可以解析日期。当您运行代码时,您可能会注意到一个警告

考虑到这一点,这个代码段应该返回预期的结果

let
date1=“2021-01-08 08:00”,
date2=“2021-1-8 08:00”
//使用正确格式化的时间戳
让
start1=时刻tz(日期1,“欧洲/维也纳”),
format1=start1.format();
//提供格式说明符
让
start2=力矩tz(日期2,“yyyy-M-D HH:mm”,“欧洲/维也纳”),
format2=start2.format();
console.log(format1);
console.log(format2)

“几天前”您可能还在12月底,因此时间戳可能类似于“2020-12-28 08:00”
。现在在一月份,您会得到一个时间戳,如
“2021-1-8 08:00”
,它不是momentjs的有效输入格式。Momentjs希望输入RFC2822或ISO格式,因此日和月都必须用两位数字表示(如果<10,则前导0)。或者,您还可以为传递的时间戳提供formatspecifier,以便momentjs可以解析日期。当您运行代码时,您可能会注意到一个警告

考虑到这一点,这个代码段应该返回预期的结果

let
date1=“2021-01-08 08:00”,
date2=“2021-1-8 08:00”
//使用正确格式化的时间戳
让
start1=时刻tz(日期1,“欧洲/维也纳”),
format1=start1.format();
//提供格式说明符
让
start2=力矩tz(日期2,“yyyy-M-D HH:mm”,“欧洲/维也纳”),
format2=start2.format();
console.log(format1);
console.log(format2)


mmmm所以我修正了时间,它起作用了,但后来我把日期弄错了。。。他不接受,如果你从另一个答案上抄袭你的答案,你至少应该做得正确。首先,天和月的格式说明符分别是
D
M
(而不是
D
M
)。而且,你的订单错了。你的格式将导致8月1日而不是1月8日。哦,对不起,我更新了我的答案,所以我更正了时间,它起作用了,但是我弄错了日期。。。他不接受,如果你从另一个答案上抄袭你的答案,你至少应该做得正确。首先,天和月的格式说明符分别是
D
M
(而不是
D
M
)。而且,你的订单错了。你的格式将导致8月1日而不是1月8日。哦,对不起,我更新了我的答案完美,现在我解决了。即使我离开罗马而不是维也纳,它也能起作用。太好了,现在我解决了。即使我离开罗马而不是维也纳,这也行得通。
var dateStartFormat = "2021-1-8 08:00"
var romeStart = moment.tz(dateStartFormat, "YYYY-M-D HH:mm" , "Europe/Rome");
var romeStartFormat = romeStart.format();