我有一个来自外部API的dateTime字符串,这种格式(很糟糕,我知道):
const startDate = '2/13/2020 15:00';
和时区名称:
const timezoneName = 'America/New_York';
这表示2/13/2020 15:00
中的dateTime为New York
。
有什么好办法可以获取时间戳(或JavaScript日期对象)吗?
如果有帮助,我不介意使用moment.js
或/和moment-timezone
。
答案 0 :(得分:1)
使用时刻-时区应该可以工作:
const moment = require('moment-timezone');
const t = moment.tz("2/13/2020 15:00", "MM/DD/YYYY HH:mm","America/New_York");
console.log(t.toISOString()); // Prints '2020-02-13T20:00:00.000Z'
答案 1 :(得分:1)
Moment和Moment-Timezone用于旧代码。
对于新应用,Moment团队建议使用Luxon。
const startDate = '2/13/2020 15:00';
const timezoneName = 'America/New_York';
const dateTime = luxon.DateTime.fromFormat(startDate, 'M/d/yyyy HH:mm',
{ zone: timezoneName });
const utcDateTime = dateTime.toUTC();
const s = utcDateTime.toISO();
console.log(s); //=> "2020-02-13T20:00:00.000Z"