Ответ 1
Я считаю, что разница вызвана Date.parse
добавлением UTC к одной строке, но не к другой, а именно: /
не является юридическим разделителем в Date.parse(), что означает, что UTC не добавляется к когда он разбирается. Поскольку '
является законным разделителем, он анализируется, а затем возвращается время UTC.
Date.parse
используется методом new Date()
, и его реализация специфична для браузера, я удивлен, что такая вещь не возникает чаще.
В спецификации Date.parse
указано:
Строка может быть интерпретирована как локальное время, время UTC или время в каком-либо другом часовом поясе, в зависимости от содержимого строки. Сначала функция пытается проанализировать формат строки в соответствии с правилами, выписанными в формате строки времени даты (15.9.1.15). Если String не соответствует этому формату, функция может вернуться к любой эвристике, специфичной для конкретной реализации, или к форматам дат реализации.
Итак, я предлагаю либо добавить в часовой пояс вручную, прежде чем разбираться, либо отбрасывать время, возвращенное new Date()
, однако это может привести к проблемам около полуночи и т.д. Самым безопасным будет увидеть, можете ли вы получить даты в более конкретном формате от обеих систем, с информацией о часовом поясе.