我有一个日期字符串 '2021-09-27 07:43',并且知道这个日期在(GMT-8:00)阿拉斯加时区。但我所在的本地时区与之不同。当我将此日期转换为UTC时,它以我的时区作为参考时区。
const str = new Date().toLocaleString('en-US', { timeZone: 'Etc/GMT' });
如何以特定的时区作为参考,而不是以本地时间为参考?
我有一个日期字符串 '2021-09-27 07:43',并且知道这个日期在(GMT-8:00)阿拉斯加时区。但我所在的本地时区与之不同。当我将此日期转换为UTC时,它以我的时区作为参考时区。
const str = new Date().toLocaleString('en-US', { timeZone: 'Etc/GMT' });
尝试:
let myDate = "2021-09-27 07:43";
let myDateUTC = new Date(myDate + " UTC-8"); // 2021-09-27T15:43:00.000Z
var input = '2021-09-27 07:43';
var fmt = 'YYYY-MM-DD HH:mm'; // must match the input
var zone = 'Etc/GMT';
var m = moment.tz(input, fmt, zone);
m.utc();
var s = m.format(fmt) // result:
console.log(s);
<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.11/moment-timezone-with-data-2010-2020.min.js"></script>
new Date('2021-09-27 07:43 GMT-8')
可以正常工作。 - Avinash Thakur