我想使用date-fns lib:从当前日期获取过去一小时:分钟:秒的ISO-8601格式:
我正在使用:
endOfDay(new Date());
Fri Sep 14 2018 23:59:59 GMT-0300
因此添加toISOString()以ISO格式获取它:
endOfDay(new Date()).toISOString()
结果:
2018-09-15T02:59:59.999Z
当我需要时:
2018-09-14T23:59:59.999Z
答案 0 :(得分:5)
2018-09-14T23:59:59.999Z
不是endOfDay(new Date());
计算的一天结束时间。现在早了3个小时。 “ Z”表示UTC,您所在的时区与UTC -0300
的偏移量。
通过执行endOfDay
,您将获得一个日期值,可以将其与其他日期值进行比较和其他计算。这是一个完整的日期,带有本地时区的时间。
您要在格式化的字符串中保留相同的日期吗?您可以在本地时区中将日期格式设置为ISO 8601字符串:
format(endOfDay(new Date()), 'YYYY-MM-DD[T]HH:mm:ssZZ')
// Prints "2018-09-14T23:59:59.999-0300" in Brazil (BRT)
您要在一天结束时使用与UTC相同的数字吗?如果您忽略了相对于其他日期的实际一天结束时间,则可以将“一天的最后一天”与“ Z”连接起来:
format(new Date(), 'YYYY-MM-DD') + 'T23:59:59.999Z'
// Prints "2018-09-14T23:59:59.999Z" anywhere on Earth