Я работаю над анализатором даты
const parseDate = (data: any): Date => {
const isDate = (d: Date) => !isNaN(d.getDate());
if (
Object.prototype.toString.call(data) === '[object Date]' &&
isDate(data)
)
return data
else if (typeof data === 'string') {
const date = new Date(data);
if (isDate(date)) return date;
else return `Not a date`
} else return `Not a date`
}
В этой упрощенной версии он проверяет дату и возвращает ее или возвращает строку ошибки.
Тем не менее, он не может правильно проанализировать в UT C:
const oddDate = new Date("1970-01-01T00:00:00.001Z").toUTCString()
const result = parseDate(oddDate)
expect(oddDate).toEqual(result)
Jest выдает ошибку:
Expected: 1970-01-01T00:00:00.001Z
Received: 1970-01-01T00:00:00.000Z
Кажется, что
new Date("1970-01-01T00:00:00.001Z") !== new Date(new Date("1970-01-01T00:00:00.001Z").toUTCString())
Как мне проанализировать UT C раз тогда правильно?