дата-фнс |Как мне отформатировать в UTC - PullRequest
1 голос
/ 25 октября 2019

Проблема

Похоже, что когда я использую функцию format(), она автоматически преобразует исходное время UTC в мой часовой пояс (UTC + 8). Я часами копался в их документах и ​​никак не мог найти способ установить его по умолчанию в формате UTC.

import { parseISO, format } from "date-fns";

const time = "2019-10-25T08:10:00Z";

const parsedTime = parseISO(time);
console.log(parsedTime); // 2019-10-25T08:10:00.000Z

const formattedTime = format(parsedTime, "yyyy-MM-dd kk:mm:ss");
console.log(formattedTime); // 2019-10-25 16:10:00 <-- 8 HOURS OFF!!

Я пытался использовать пакет data-fns-tz и использовать что-то вроде

format(parsedTime, "yyyy-MM-dd kk:mm:ss", {timeZone: "UTC"});

все еще не повезло.

Пожалуйста, помогите!

Ожидаемый результат

2019-10-25 08:10:00

Фактический результат

2019-10-25 16:10:00

1 Ответ

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

Я бы предложил использовать встроенный Date util:

const date = new Date("2019-10-25T08:10:00Z");
const isoDate = date.toISOString();

console.log(`${isoDate.substr(0, 10)} ${isoDate.substr(11, 8)}`);

Выходы:

2019-10-25 08:10:00

Не общее решение для любого формата,но внешние библиотеки не требуются.

...