首页 > 解决方案 > 使用 OffsetDateTime.now() 时如何避免使用毫秒

问题描述

我正在使用OffsetDateTime.now()以 UTC 格式获取当前日期,结果也包括毫秒。我不希望发送毫秒。有没有一种方法可以在不使用拆分的情况下从 OffsetDateTime.now() 中删除毫秒。

Current format: 2021-02-11T11:27:27.846871-08:00
Format i am looking: 2021-02-10T16:04:00-08:00

标签: javaspringrest-assured

解决方案


tl;博士

myOffsetDateTime.truncatedTo( ChronoUnit.SECONDS ) 

细节

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

该类OffsetDateTime提供了truncatedTo一种将较小部分设置为零的方法。传递 aChronoUnit以指定截断的粒度。指定ChronoUnit.SECONDS将秒的分数(纳秒数)设置为零。

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

推荐阅读