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



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

例如

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

对于 Jodatime,我已经使用了dayOfMonth()getMaximumValue(),但是如何在Java 11中使用ZonedDateTime进行等效操作?

你真的不需要一个 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())

请注意,如果要保留时间和时区信息,也可以调用zdt.with(TemporalAdjusters.lastDayOfMonth())

最新更新