从 OffsetDateTime 中删除分、秒和纳秒

Remove minutes, seconds, and nanoseconds from OffsetDateTime

有没有一种简洁的方法可以去掉OffsetDateTime中所有的分秒纳秒?这是我必须做的才能得到我想要的。

final OffsetDateTime strippedTime = OffsetDateTime.now().withMinute(0).withSecond(0).withNano(0);
System.out.println(strippedTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.nnnnnnnnn")));

上面的代码给我:

2016-11-08 09:00:00.000000000

LocalTime.MIDNIGHT 可悲地剥夺了对象的时间,所以这对我没有用。任何建议表示赞赏。

您可以使用OffsetDateTime.now().truncatedTo(ChronoUnit.HOURS)

您可以使用 OffsetDateTime.truncatedTo(TemporalUnit) with ChronoUnit.HOURS:

 OffsetDateTime.now().truncatedTo(ChronoUnit.HOURS)