将日期四舍五入到一天结束

时间:2021-03-01 08:06:28

标签: java android date

我想要获取特定日期的结束日期。

示例:“Tue Mar 02 00:00:00 GMT+08:00 2021”

如何获得上述日期的结束日期???

1 个答案:

答案 0 :(得分:3)

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

通常最好采用半开放式方法,其中时间跨度的开始包含,而结尾排除

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

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。在您的特定时区,政客可能已宣布在添加/减去的时间跨度内更改偏移量。