Почему Stream удаляет код часового пояса при установке метки времени? - PullRequest
1 голос
/ 08 октября 2019

Я заметил, что если вы создадите мероприятие с отметкой времени, подобной этой:

2010-09-17T14:27:37.860Z

Она будет сохранена следующим образом:

2010-09-17T14:27:37.860

Обратите внимание на отсутствующий код часового пояса. ,Из того, что я могу сказать, это нарушает стандарт ISO и определенно вызывает сложности в JavaScript с объектом Date. Мне всегда приходилось отображать временную метку обратно на правильную временную метку, добавляя символ Z, что является безумным.

Вот код, который, мы надеемся, иллюстрирует, почему это проблема:

const now = new Date('2010-09-17T14:27:37.860Z');
const notNow = new Date('2010-09-17T14:27:37.860');
console.log(now);
// Fri Sep 17 2010 09:27:37 GMT-0500 (Central Daylight Time)
console.log(notNow);
// Fri Sep 17 2010 14:27:37 GMT-0500 (Central Daylight Time)

Что здесь происходит? Я что-то недопонимаю или это ошибка в Stream?

1 Ответ

1 голос
/ 10 октября 2019

Вы правы;поле activity.time возвращается без информации о смещении, даже если они локализованы как UTC.

Это то, что было введено на раннем этапе, и его было невозможно исправить, не нарушив количество существующих клиентов API, которые полагаются наэтот формат времени.

API потока сохраняет activity.time как UTC (смещение, указанное в пользовательском вводе, будет учитываться). Если вы используете moment.js , вы можете правильно проанализировать строку времени следующим образом:

moment.tz("2010-09-17T14:27:37.860", "UTC")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...