Получить метку времени из строки даты без указания часового пояса и названия часового пояса - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть строка dateTime в этом (плохом, я знаю) формате, поступающем из внешнего API:

const startDate = '2/13/2020 15:00';

и имя часового пояса:

const timezoneName = 'America/New_York';

Что означает, что dateTime - 2/13/2020 15:00 in New York.

Есть идея элегантного способа получить метку времени (или JavaScript объект даты)?

Я не против использования moment.js или / и moment-timezone, если это поможет.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

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"
1 голос
/ 20 февраля 2020

Использование момента времени-часовой зоны должно работать:

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'
...