Расшифровка строки даты и времени с текстовым местным часовым поясом - PullRequest
0 голосов
/ 06 января 2019

У меня есть приложение, которое анализирует информацию из RSS-каналов, которые указывают, что даты должны быть указаны в формате RFC-822 - для которого Date.parse работает нормально. В основном люди ставят соответствующие метки времени. Однако я столкнулся с ситуацией, когда кто-то указывает дату и время как (например, «Сб, 1 декабря 2018 00:00:00 MSK» (где, насколько я могу судить, MSK - это московский часовой пояс).

Есть ли способ программно преобразовать такую ​​строку во что-то, что я могу использовать с Date.parse (очевидно, для MSK я мог бы жестко кодировать + (или -) смещение Москвы, но я хотел бы быть немного более гибким / надежнее, чем это)

По разным причинам я бы предпочел не включать другую библиотеку, чтобы сделать это, поэтому ответы с использованием стандартного javascript приветствуются

1 Ответ

0 голосов
/ 06 января 2019

Итак, из моего опыта работы с такими проблемами я имею в виду, что все проблемы с часовыми поясами легко решались внешними библиотеками, такими как momentJs. каждый раз, когда у меня возникали проблемы с датой, JS решал это без проблем.

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

const date = 'Sat, 1 Dec 2018 00:00:00 MSK';

const dateConverted = (date)=> {
    return date.replace('MSK', '+0300');
}

const convertedDate = dateConverted(date);
Date.parse(convertedDate)

Но в этом случае вам потребуется расширенная функция dataConverter с другими, не распознаваемыми js часовыми поясами, такими как. Например, GMT + 3 может быть представлено также другими сокращениями, такими как:

  • AST - Стандартное время Аравии
  • C - Часовой пояс Чарли
  • EAT - Восточноафриканское время
  • EEST - Восточноевропейское летнее время
  • FET - Дальневосточное европейское время
  • IDT - летнее время Израиля
  • SYOT - Syowa Time
  • TRT - время Турции

Нет другого способа реализовать собственную функцию преобразования или внешнюю библиотеку.

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