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

Get last day of the month from a ZonedDateTime object

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

例如

在 Jodatime 中,我使用了 dayOfMonth()getMaximumValue(),但是我怎样才能在 [=19] 中用 ZonedDateTime 做同样的事情=]Java11?

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