我有一个UTC时间,偏移量如下。我正在尝试使用date-fns
库中的format
函数格式化UTC日期时间字符串。
import { format } from "date-fns";
const utcDateTime = "2021-10-14T21:03:56.3256046+00:00";
const formattedDate = format(new Date(utcDateTime), "MM/dd/yyyy hh:mm");
我期待的是10/14/2021 21:03
, 24小时时间格式,但我得到的是10/14/2021 04:03
,我的时区转换日期时间。
如何显示日期和时间完全像UTC时间,而不是转换日期时间到当地时区?
我使用CodeSandbox创建了一个工作示例。有人能帮忙吗?
在花费了大量时间之后,我能够使用普通JavaScriptDate
对象及其函数实现所需的结果。
-
首先,解析日期时间字符串并使用
toISOString()
函数将其转换为ISO字符串。 -
第二,从ISO字符串中拆分格式化的日期和时间。
下面是代码
const formatToUTCDateTime = (dateString) => {
const date = new Date(Date.parse(dateString));
const formattedDate = date.toISOString().split("T")[0].split("-");
const formattedTime = date.toISOString().split("T")[1].split(":");
return `${formattedDate[1]}/${formattedDate[2]}/${formattedDate[0]} ${formattedTime[0]}:${formattedTime[1]}`;
};
console.log("Result - ", formatToUTCDateTime("2021-10-14T20:03:56.3256046+00:00"));