utc时刻,date-fns是否有类似内容?

时间:2018-10-16 10:46:22

标签: javascript ecmascript-6 momentjs date-fns

我目前正在重构使用时刻作为日期的大型代码库。 许多地方的日期都像这样:moment.utc()

我似乎在date-fns中找不到类似的东西?有谁知道我如何在date-fns中获得相同的功能?还是纯香草?

只需与moment.utc()相同

1 个答案:

答案 0 :(得分:4)

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

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

Date对象没有当前时刻所具有的模式。因此,您无法使用Date-fns或任何其他vanilla js技术将Date对象切换为UTC模式。

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

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