时刻时区现在将本地时间增加一小时

问题描述

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

   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

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

解决方法

“几天前”您可能还在 12 月底,因此时间戳应该类似于 "2020-12-28 08:00"。现在在 1 月你会得到一个像 "2021-1-8 08:00" 这样的时间戳,它不是 momentjs 的有效输入格式。 Momentjs 需要 RFC2822 或 ISO 格式作为输入,因此日和月都必须用两位数字给出(因此如果

考虑到这一点,此代码段应返回预期结果。

let 
  date1 = "2021-01-08 08:00",date2 = "2021-1-8 08:00"
  
//use a proper formated timestamp  
let 
  start1 = moment.tz(date1,"Europe/Vienna"),format1 = start1.format();

//provide a format specifier
let 
  start2 = moment.tz(date2,"yyyy-M-D HH:mm",format2 = start2.format();

console.log(format1);
console.log(format2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.32/moment-timezone-with-data.min.js"></script>

,

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

var dateStartFormat = "2021-1-8 08:00"
var romeStart = moment.tz(dateStartFormat,"YYYY-M-D HH:mm","Europe/Rome");
var romeStartFormat = romeStart.format();

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...