【发布时间】:2021-12-06 17:45:05
【问题描述】:
我有一个 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 创建了一个工作示例。有人可以帮忙吗?
【问题讨论】:
-
Re
new Date(utcDateTime),见Why does Date.parse give incorrect results? 检查format tokens,h 是 12 小时,H 是 24 小时。 -
修正了 24 小时格式。但是,我如何不考虑时区并在 24 小时内显示 UTC 时间。在上述情况下,它应该显示
10/14/2021 21:03。但是,它在使用 24 小时格式 H 后显示10/14/2021 16:03。我知道这是它的默认行为。 @RobG @Dominik -
根据the link in @Dominik's answer 使用timeZone 选项:
format(..., 'MM/dd/yyyy HH:mm',{timeZone: 'UTC'})。 -
既然你决定使用POJS,这是How to format a JavaScript date的副本
标签: javascript date datetime date-fns