Java 从ZoneDateTime对象获取当月的最后一天

Java 从ZoneDateTime对象获取当月的最后一天,java,java-time,zoneddatetime,dayofmonth,Java,Java Time,Zoneddatetime,Dayofmonth,我以前已经能够使用Joda DateTime对象完成此操作,但我不确定如何为应用了时区的ZonedDateTime实例获取给定月份的最后一天 e、 g 闰年2月29日 四月三十号 12月31日 对于Jodatime,我已经使用了dayOfMonth()和getMaximumValue(),但是如何在Java11中使用?实现这一点,您并不需要一个ZonedDateTime对象-一个LocalDate可能就足够了(除非您处理的是外来日历) 请注意,如果您想保留时间和时区信息,还可以调用zdt.w

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

e、 g

  • 闰年2月29日
  • 四月三十号
  • 12月31日

对于Jodatime,我已经使用了
dayOfMonth()
getMaximumValue()
,但是如何在Java11中使用

实现这一点,您并不需要一个ZonedDateTime对象-一个LocalDate可能就足够了(除非您处理的是外来日历)


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

OP:如果您有兴趣了解更多有关Java的现代日期时间API的信息,请检查,谢谢,我不熟悉TemporalAdjusters,但它工作得很好
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())