Javascript, как конвертировать различные форматы даты в общий формат - PullRequest
0 голосов
/ 05 марта 2019

У меня есть несколько источников данных о дате, которые включают дату и время. Существует несколько различных форматов (все они строковые), которые возвращаются из API или страницы. Мне казалось, что использование GMT ​​в качестве базы и Date.parse на внешнем интерфейсе для преобразования в местное время для пользовательского интерфейса будет работать. Однако я столкнулся с источником данных, который возвращает дату в формате:

"15.02.2009 2 AM EST"

Сейчас я пересматриваю свою архитектуру дат и лучшее время для GMT. Все источники даты / времени будут североамериканскими.

Я пытаюсь понять, есть ли какая-либо библиотека дат или методы, которые будут обрабатывать часть «2 AM EST», или мне придется делать преобразование самостоятельно (также откат даты). В настоящее время для меня не имеет смысла конвертировать EST в GMT только для того, чтобы преобразовать его обратно в EST на внешнем интерфейсе.

Любой совет?

1 Ответ

2 голосов
/ 05 марта 2019

Первая часть, 02/15/2019 2 AM может быть проанализирована с такими библиотеками, как Moment.js , Luxon или Date-fns .

Однако, один не может анализировать сокращения часовых поясов в глобальном масштабе.Каноническим примером является сокращение CST, которое можно интерпретировать как Центральное стандартное время США, Центральное стандартное время Австралии, Стандартное время Китая или Стандартное время Кубы.Существует также много других неясностей.

Поэтому, только когда вы уже знаете все сокращения, с которыми вы столкнетесь, и то, как вы хотите их интерпретировать, вы можете сопоставить сокращение со смещением часового пояса.Например, если вы заботитесь только о времени в континентальной части США, вы можете отобразить следующее:

EDT = -4
EST = -5
CDT = -5
CST = -6
MDT = -6
MST = -7
PDT = -7
PST = -8

Но тогда, если вы хотите добавить на Аляске и Гавайях, вам может потребоваться добавить:

AKDT = -8
AKST = -9
HADT = -9
HAST = -10
HST = -10

Обратите внимание, как HST и HAST используются для Гавайев?Оба обычно используются там.Даже если вы решите, что хотите HST, вам все равно понадобятся HAST и HADT для Алеутских островов на Аляске, которые находятся в отдельном часовом поясе, чем остальная часть Аляски.

А как насчет других?Территории США, ваши данные включают их?

Вы можете видеть, как все может быть довольно сложно.В общем, аббревиатуры часовых поясов не должны анализироваться, а просто использоваться для отображения людям.Если вы создаете данные, которые требуют дальнейшей интерпретации, вместо данных следует указывать смещение часового пояса.

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