将日期舍入到一天的末尾



我想获取特定日期的End of day。

示例:" tuesday Mar 02 00:00:00 GMT+08:00 2021">

我怎样才能得到上述日期的结束日期??

得到一天的最后一刻是有问题的,因为最后一秒是无限可分的。

通常最好使用半开放的方法,其中时间跨度的开始是包含,而结束是不包含

所以一天从一天的第一个时刻开始,一直到但不包括第二天的第一个时刻。

ZoneOffset offset = ZoneOffset.ofHours( 8 ) ;
OffsetDateTime odt = OffsetDateTime.of( 2021 , Month.MARCH , 2 , 0 , 0 , 0 , 0 , offset ) ;
OffsetDateTime odtFirstMomentDayAfter = odt.toLocalDate().plusDays(1).atStartOfDay( offset ).toOffsetDateTime() ;

顺便说一下,在添加和减去时间时,应该使用时区而不是仅仅使用偏移量,并且应该使用ZonedDateTime而不是OffsetDateTime。在您的特定时区,政治家可能已经声明了在添加/减去的时间范围内对偏移量的更改。

最新更新