Почему Javascript обрезает милисекунды при получении даты от сервера?

Есть такая ситуация. С сервера приходит Json в котором есть поле с датой 2021-04-09T19:39:45.26918Z. Я использую его для отбражения пользователю и храню его в типе Date. Бывают случаи когда мне надо полученную дату, без преобразования, вернуть на сервер ввиде параметра запроса. Я использую конвертацию date.toJSON(), однако на сервер приходят не полные данные, так как Javascript почему-то обрезает милисикунды.

new Date('2021-04-09T19:39:45.26918Z').toJSON() // Получаю 2021-04-09T19:39:45.269Z

Куда подевалось значение 18? 26918Z -> 269Z Таким образом для сервера это уже разные даты. Как избежать такой потери данных?

Стек: Javascript, .net core 3.1


Ответы (1 шт):

Автор решения: Daniil Loban

Вот вариант извлечения регуляркой

date = '2021-04-09T19:39:45.26918Z'
// все цифры после точки
console.log(date.match(/(\d{5})Z$/)[1])

// только недостающие
console.log(date.match(/(\d{2})Z$/)[1])

→ Ссылка