Javascript 即使系统时区与提供的时区相同,Moment Js也会更改timezone对象中的时间

Javascript 即使系统时区与提供的时区相同,Moment Js也会更改timezone对象中的时间,javascript,datetime,momentjs,Javascript,Datetime,Momentjs,我使用矩js进行时区转换 moment.tz("2017-09-04 1:48 PM", "Asia/Calcutta").format("DD-MM-YYYY HH:mm A"); 当系统位于亚洲/加尔各答相同时区时,将时间2017-09-04 1:48 PM转换为04-09-2017 19:18 PM 如何解决这个问题 我的系统时区是亚洲/加尔各答。使用矩.tz.guess()以获取准确的时区值 moment.tz(“2017-09-04下午1:48”,moment.tz.guess()

我使用矩js进行时区转换

moment.tz("2017-09-04 1:48 PM", "Asia/Calcutta").format("DD-MM-YYYY HH:mm A");
当系统位于亚洲/加尔各答相同时区时,将时间
2017-09-04 1:48 PM
转换为
04-09-2017 19:18 PM

如何解决这个问题

我的系统时区是
亚洲/加尔各答
。使用
矩.tz.guess()
以获取准确的时区值

moment.tz(“2017-09-04下午1:48”,moment.tz.guess()).format(“DD-MM-YYYY HH:MM A”)

这也会改变时间


提前感谢。

您的输入不是符合ISO 8601的格式,您应该在解析时添加
“YYYY-MM-DD h:MM A”
格式参数

您的代码给出了弃用警告,因此您必须使用中建议的解析方法

这里是一个工作示例:

var m=moment.tz(“2017-09-04下午1:48”,“YYYY-MM-DD h:MM A”,“亚洲/加尔各答”)。格式(“DD-MM-YYYY HH:MM A”);
控制台日志(m)