如何在 date-fns 中格式化小时和分钟?

How to format hour and minutes in date-fns?

我正在将我的代码从 MomentJS 迁移到 date-fns,并且在设置小时和分钟时遇到以下问题。

这是我的 momentJS,效果很好:

var someDate = moment.utc('2020-07-16T16:35:39.955873Z')) // 2020-07-16T16:35:39.955Z
console.log(someDate.format('MM/DD/YYYY [ at ] LT ')); // 07/16/2020 at 4:35 PM

这是我使用 date-fns:

的代码
var someTime = zonedTimeToUtc('2020-07-16T16:35:39.955873Z', 'utc'); // 2020-07-16T16:35:39.955Z
console.log(format(new Date(someTime), "MM/dd/yyyy 'at' h:mm a")); // 07/16/2020 at 10:35 AM

所以,我希望我的 date-fns 代码打印出来

07/16/2020 at 4:35 PM

但是正在打印

07/16/2020 at 10:35 AM

这是为什么?让它打印我想要的日期的一种简单方法是从 someTime 变量的值中删除“Z”(如下所示:2020-07-16T16:35:39.955) ,然后它就可以工作了,但我不想手动删除它。谁能告诉我我错过了什么或做错了什么?非常感谢!

这是一个LIVE DEMO

尝试使用 utcToZonedTime()

要更改显示的 date/time 从 format() 返回,您必须使用:

  • utcToZonedTime: 当你想知道另一个时区的本地日期时
  • zonedTimeToUtc: 当你想知道另一个时区的日期在本地时区是什么时候

Working Demo