使用 OffsetDateTime.now() 时如何避免使用毫秒

How to avoid using milliseconds when using OffsetDateTime.now()

我正在使用 OffsetDateTime.now() 获取 UTC 格式的当前日期,结果也包括毫秒。我不想发送毫秒数。有没有一种方法可以在不使用 split.

的情况下从 OffsetDateTime.now() 中删除毫秒
Current format: 2021-02-11T11:27:27.846871-08:00
Format i am looking: 2021-02-10T16:04:00-08:00

tl;博士

myOffsetDateTime.truncatedTo( ChronoUnit.SECONDS ) 

详情

日期时间 class 等 OffsetDateTime 不是字符串。他们没有格式。与其考虑字符串操作,不如考虑日期时间逻辑。

OffsetDateTime class 提供 truncatedTo method for setting smaller parts to zero. Pass a ChronoUnit to specify the granularity of your truncation. Specify ChronoUnit.SECONDS to set the fraction-of-second (a number of nanoseconds) 归零。

OffsetDateTime nowUtc = OffsetDateTime.now( ZoneOffset.UTC ) ;
OffsetDateTime nowUtcTruncated = nowUtc.truncatedTo( ChronoUnit.SECONDS ) ;