我正在使用时刻js进行时区转换。
moment.tz("2017-09-04 1:48 PM", "Asia/Calcutta").format("DD-MM-YYYY HH:mm A");
当系统位于同一时区2017-09-04 1:48 PM
时,时刻js将时间04-09-2017 19:18 PM
转换为Asia/Calcutta
。
如何解决这个问题。
我的系统时区是Asia/Calcutta
。使用moment.tz.guess();
获取准确的时区值。
moment.tz("2017-09-04 1:48 PM", moment.tz.guess()).format("DD-MM-YYYY HH:mm A");
这也改变了时间。
提前致谢。
答案 0 :(得分: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>