date-fns v2 время разбора с часовым поясом по умолчанию - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть строковое значение времени, представляющее значение центрального часового пояса (чикагское время):

const rawTime = "11:22 AM";

Использование date-fns v2.3.0 Я анализирую новый объект Dateисходя из этого:

const time = parse(rawTime, "hh:mm aa", new Date(2019, 8, 23));

У меня есть тест, который проходит, когда я запускаю его в центральное время:

expect(time).toStrictEqual(new Date("2019-09-23 11:22:00-05:00"));

Когда яВыполнить тесты в часовом поясе UTC не удается, поскольку предполагается, что это время UTC - я понимаю, почему.

Мне нужно знать, есть ли способ указать значение «backupDate» (часть анализа new Date(2019, 8, 23)), которое бы автоматически анализировало значение времени со смещением часового пояса для центрального часового пояса..?Или мне нужно проанализировать время, а затем манипулировать данными с помощью библиотеки date-fns-tz?

Я пробовал несколько разных вещей, но не могу заставить их работать, а неогромное дело, но было бы неплохо сделать, если это возможно.

Соответствующие документы здесь - https://date -fns.org / v2.3.0 / docs / parse # синтаксис )

1 Ответ

0 голосов
/ 26 сентября 2019

Я нашел способ справиться с этим - поскольку я знаю, что часовой пояс входящего времени является центральным, я добавляю информацию о часовом поясе к концу необработанного времени, а затем parse эту новую строку, добавляемую в часовой пояс кformatString.

const rawTime = "11:22 AM";
const rawTimeWithTz = rawTime + " -05:00"; // specify central timezone on the raw time
const time = parse(rawTimeWithTz, "hh:mm aa xxxxx", new Date(2019, 8, 23));

expect(time).toStrictEqual(new Date("2019-09-23 11:22:00-05:00"));

Это не на 100% отвечает на первоначальный вопрос, но дает мне то же поведение, которое я искал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...