Показать строку UT C с указанием даты - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть строка, представляющая ISO UT C дата: 2020-06-08T04:00:00.000Z (4 утра 8 июля UT C).

Я создаю объект date-fns из так, чтобы я мог отформатировать отображаемую строку в соответствии с потребностями. Поэтому я действую следующим образом:

const localDate = parseISO('2020-06-08T04:00:00.000Z');
const formattedDateString = format(localDate, 'MMMM dd, yyyy, EEEE, hh:mm aaa');

Однако formattedDateString показывает по местному времени (скажем, ваш браузер находится в часовом поясе на 1 час впереди UT C, он показывает ...05 AM), но мне нужно показать UT C время (независимо от часового пояса браузера), т.е. ... 4 AM. Как мне это сделать?

Примечание: ... указывает на упущение для ясности примера

1 Ответ

0 голосов
/ 25 апреля 2020

Я закончил тем, что добавил библиотеку date-fns-tz и сделал это:

import { parseISO, format } from 'date-fns';
import { utcToZonedTime } from 'date-fns-tz';

const localDate = parseISO('2020-06-08T04:00:00.000Z');
const convertedDate = isLocalTime ? localDate : utcToZonedTime(localDate, 'UTC');
const formattedDateString = isLocalTime
    ? format(convertedDate, 'MMMM dd, yyyy, EEEE, hh:mm aaa EEEE')      // June 08, 2020, Monday, 06:00 AM, GMT+02:00
    : `${format(convertedDate, 'MMMM dd, yyyy, EEEE, hh:mm aaa')} UTC`; // June 08, 2020, Monday, 04:00 AM, UTC

Отказ от ответственности : я не нашел использования параметра UTC utcToZonedTime задокументировано ( это может быть не рекомендуемый способ ИЛИ просто я не нашел его в библиотеке документов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...