2017-09-04 15 views
-1

我使用时刻js进行时区转换。即使系统时区与提供的时区相同,时刻Js也会更改时区对象中的时间

moment.tz("2017-09-04 1:48 PM", "Asia/Calcutta").format("DD-MM-YYYY HH:mm A"); 

矩JS时2017-09-04 1:48 PM转换为04-09-2017 19:18 PM当系统处于同一时区Asia/Calcutta

如何解决这个问题。

enter image description here

我的系统时区为Asia/Calcutta。使用moment.tz.guess();可以获得确切的时区值。

moment.tz("2017-09-04 1:48 PM", moment.tz.guess()).format("DD-MM-YYYY HH:mm A");

这也改变了时间。

在此先感谢。

回答

3

您输入的格式不符合ISO 8601格式,您应在分析格式时添加"YYYY-MM-DD h:mm A"格式参数。

您的代码给出弃用警告,因此您必须使用moment(String, String)解析方法,如parsing guide中所建议的。

这里工作示例:

var m = moment.tz("2017-09-04 1:48 PM", "YYYY-MM-DD h:mm A", "Asia/Calcutta").format("DD-MM-YYYY HH:mm A"); 
 
console.log(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.13/moment-timezone-with-data-2012-2022.min.js"></script>