moment utc,date-fns 有类似的东西吗?

moment utc, does date-fns have something similar?

我目前正在重构一个使用 moment 作为日期的大型代码库。 有很多地方的日期是这样的:moment.utc()

我好像在 date-fns 中找不到类似的东西?有谁知道我如何在 date-fns 中获得相同的功能?或者只是普通的香草?

只需匹配 moment.utc()

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

Date-fns 是一个出色的库,它提供的辅助函数可与 JavaScript 语言(在 ECMAScript 标准中)提供的 Date 标准对象一起使用。因此,它的功能仅限于您可以对 Date 对象执行的操作。

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

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

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