如何将特定时区的日期转换为 utc
How to convert a date in specific timezone to utc
我有一个日期字符串“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
您可以使用 moment.js 转换它。
参见示例:
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>
我有一个日期字符串“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
您可以使用 moment.js 转换它。 参见示例:
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>