从 ZonedDateTime 对象获取该月的最后一天

Mis*_*bbs 5 java java-time zoneddatetime dayofmonth

我以前能够使用 Joda DateTime 对象执行此操作,但我不确定如何获取应用了时区的 ZonedDateTime 实例的给定月份的最后一天。

例如

  • 闰年二月回归29
  • 四月回归30。
  • 12 月返回 31。

在 Jodatime 中,我使用了dayOfMonth()and getMaximumValue(),但是如何ZonedDateTimeJava 11中使用 和 进行等效操作?

ass*_*ias 11

您实际上并不需要 ZonedDateTime 对象 - LocalDate 可能就足够了(除非您正在处理外来日历)。

val zdt = ZonedDateTime.now() //let's start with a ZonedDateTime if that's what you have
val date = zdt.toLocalDate() //but a LocalDate is enough
val endOfMonth = date.with(TemporalAdjusters.lastDayOfMonth())
Run Code Online (Sandbox Code Playgroud)

zdt.with(TemporalAdjusters.lastDayOfMonth())请注意,如果您想保留时间和时区信息,也可以致电。