时刻UTC,date-fns有类似的功能吗?

16
我目前正在重构一个使用moment处理日期的大型代码库。
有很多地方用到了 moment.utc() 这样的日期获取方式。
我在date-fns中似乎找不到类似的功能?有人知道我如何在date-fns或纯vanilla中获得相同的功能吗?
只需匹配与moment.utc()相同即可。
1个回答

25

Moment.js库提供的对象具有“模式”的概念。一个moment对象可以处于本地模式、UTC模式,或者被固定为特定的时区偏移量。它还可以通过moment-timezone附加库属于命名时区。当您调用moment.utc()时,您正在将该moment对象设置为UTC模式。

Date-fns是一个优秀的库,提供了与JavaScript语言(在ECMAScript标准中)提供的Date标准对象一起使用的帮助函数。因此,它的函数仅限于您可以使用Date对象的操作。

Date对象没有像moment那样的模式。因此,您不能使用Date-fns或任何其他原始js技术将Date对象切换到UTC模式。

Date对象在内部始终跟踪UTC时间点,并公开一些使用UTC时间的函数和参数,以及使用本地时间的函数和参数。任何使用本地时间的操作都会在函数调用时进行转换/从UTC进行转换。换句话说,如果您调用new Date(year, month, day, hour, minute, second),这些值表示本地时间,并会立即转换为UTC时间。您可以随时通过调用.getTime().valueOf()来获取内部值。如果您想要更常见的表示形式,.toISOString()是一个不错的选择。

总之:你不能将 Date 对象转换为 UTC,因为它已经是 UTC。你只能根据你调用的函数请求 UTC 或本地时间输出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接