Javascript 显示带有日期fns的UTC字符串

Javascript 显示带有日期fns的UTC字符串,javascript,date-fns,Javascript,Date Fns,我有一个表示ISO UTC日期的字符串:2020-06-08T04:00:00.000Z(UTC 7月8日上午4点) 我用它创建了一个对象,这样我就可以根据需要格式化显示的字符串。因此,我的工作如下: const localDate = parseISO('2020-06-08T04:00:00.000Z'); const formattedDateString = format(localDate, 'MMMM dd, yyyy, EEEE, hh:mm aaa'); 但是,formatte

我有一个表示ISO UTC日期的字符串:
2020-06-08T04:00:00.000Z
(UTC 7月8日上午4点)

我用它创建了一个对象,这样我就可以根据需要格式化显示的字符串。因此,我的工作如下:

const localDate = parseISO('2020-06-08T04:00:00.000Z');
const formattedDateString = format(localDate, 'MMMM dd, yyyy, EEEE, hh:mm aaa');
但是,
formattedDateString
在本地时间显示(假设您的浏览器位于UTC前1小时的时区,它显示
…05 AM
),但我需要显示UTC时间(无论浏览器的时区如何),即
。。。凌晨4点
。我该怎么做


注意:
表示省略以保持示例清晰

我最后添加了
日期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

免责声明:我没有发现
utcToZonedTime
UTC
参数的使用被记录在案(这可能不是推荐的方法,或者只是我没有在图书馆文档中找到它)。

您可以在这里@PeteKelley找到一些变体,谢谢,但是我需要它用于Javascript库
date fns
特别是
date fns
文档中有一个与时区相关的文档,它应该涵盖您要查找的内容:似乎本地时间是默认时间,为了切换到UTC,您需要它。这是我的想法之一,但是
date fns tz
库需要第二个参数时区,因此如果您将
Europe/London
之类的内容传递给工作(当英国在夏季/冬季时间切换期间偏离UTC时),那么我们再次面临使用这种方法的一年中的一段时间将休息1小时。除非有“UTC”参数,但我找不到任何引用此类参数的文档