这是我在服务器端nodejs中运行的代码,用于转换。
convertNowToTimezone = (localOffset) => {
let d = new Date();
let millis = d.getTime() + (d.getTimezoneOffset() * 60000); //convert server local time to UTC millisec
d.setTime(millis - (localOffset * 60000)); //convert UTC millisec to required local time
return d;
}
localOffset是-330(IST偏移),这给出了4分钟的差异。
如何做到这一点?
答案 0 :(得分:1)
我建议使用moment
来处理javascript中的日期。
您可以使用moment-timezone
轻松管理时区const moment = require('moment-timezone');
moment().tz("UTC").format();
moment().tz("America/Los_Angeles").format();
console.log(moment().tz("UTC").format());
console.log(moment().tz("America/Los_Angeles").format());
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>
localOffset是-330(IST偏移),这给出了4分钟的差异。
检查您的服务器时间是否已同步。如果您使用的是Linux服务器,可以使用ntp。
答案 1 :(得分:0)
JS直线上升:
const dateISOString = '2019-10-03T02:45:02'; // UTC server time or --> new Date()
const aest = new Date(new Date(dateISOString).toLocaleString('en-AU', { timeZone: 'Australia/Sydney' }));
console.log("aest.toISOString(): " + aest.toISOString());