我正在尝试将当地时间(印度的客户端机器)转换为('美国/东部')时区的特定日期的UTC时间
tz - 'US/Eastern'
InputDate - 03/12/2017 23:59:59
Expected output - 03/13/2017 03:59:59
Actual output i am getting - 03/12/2017 18:29
var date1 = moment(inputDate, 'MM/DD/YYYY HH:mm:ss').utc().format('MM/DD/YYYY HH:mm');
var date2 = moment(inputDate, 'MM/DD/YYYY HH:mm:ss').tz(tz).utc().format('MM/DD/YYYY HH:mm');
如果我将本地计算机时区更改为us / newyork时区,则date1和date2都返回正确的输出,但如果我在印度/德里的当地时区,则返回错误。哪里我错过了什么?提前谢谢。
答案 0 :(得分:2)
尝试使用moment.tz(日期,时区)创建日期;
var tz = 'US/Eastern';
var date2 = moment.tz(inputDate, 'MM/DD/YYYY HH:mm:ss', tz).utc().format('MM/DD/YYYY HH:mm')
答案 1 :(得分:1)
尝试使用date2
创建moment.tz(date, format, timeZone)
:
var date2 = moment.tz(inputDate, 'MM/DD/YYYY HH:mm:ss', tz)
.utc().format('MM/DD/YYYY HH:mm');
var tz = 'US/Eastern';
var inputDate = '03/12/2017 23:59:59';
var expectedOutput = '03/13/2017 03:59:59';
// Actual output i am getting - 03/12/2017 18:29
var date1 = moment(inputDate, 'MM/DD/YYYY HH:mm:ss').utc().format('MM/DD/YYYY HH:mm');
var date2 = moment.tz(inputDate, 'MM/DD/YYYY HH:mm:ss', tz).utc().format('MM/DD/YYYY HH:mm');
console.log('date1', date1);
console.log('date2', date2);
console.log('expectedOutput', expectedOutput);
<script src="http://momentjs.com/downloads/moment.js"></script>
<script src="http://momentjs.com/downloads/moment-timezone-with-data.js"></script>