Использование Python для разбора строк даты / времени * точно * так же, как Javascript? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть некоторый клиентский код JavaScript, который читает строку и пытается проанализировать ее в объект Date () через new Date(theString), отображая полученную дату в виде строки UT C для пользователя. Если это строка, которую нельзя превратить в дату, то, конечно, она становится Invalid Date, и в этом случае вместо этого отображается «Не дата / время».

У меня также есть какой-то сервер- код стороны Python, который, по сути, делает то же самое: берет предоставленную пользователем дату и сохраняет ее как строку UT C или как "не дату".

Трюк мне нужно, чтобы две части кода всегда вели себя одинаково в каждой отдельной строке. Конечно, я мог бы просто создать крошечную конечную точку Python, которая использует существующий код Python для отправки соответствующего ответа клиенту вместо использования Date() на стороне клиента, но по разным причинам это нежелательное решение.

Так есть ли способ перевести строки в даты в Python, который гарантированно будет работать точно так же, как new Date(myString) в JavaScript?

1 Ответ

0 голосов
/ 02 апреля 2020

Так есть ли способ преобразовать строки в даты в Python, который гарантированно будет работать точно так же, как новая дата (myString) в JavaScript?

Нет .

Это невозможно, потому что:

  1. Разбор строк, отличных от двух форматов, указанных в ECMA-262, зависит от реализации, и легко показать, что разные реализации по-разному разбирают одну и ту же строку (например, Почему Date.parse ('COVINGTONOFFICE-2') возвращает реальную дату? )
  2. Как различные реализации анализируют неподдерживаемые форматы, так и не задокументированы определить правила можно только путем наблюдения за поведением каждой возможной строки, включая те, которые не похожи на дату, в каждой реализации, а затем зная, какую реализацию вы пытались имитировать
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...