首页 > 解决方案 > 从 ZonedDateTime 对象获取该月的最后一天

问题描述

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

例如

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

标签: javajava-timezoneddatetimedayofmonth

解决方案


您实际上并不需要 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())如果您想保留时间和时区信息,也可以调用。


推荐阅读