java - 从 ZonedDateTime 对象获取该月的最后一天
问题描述
我以前可以使用 Joda DateTime 对象来执行此操作,但我不确定如何为应用了时区的 ZonedDateTime 实例获取给定月份的最后一天。
例如
- 闰年二月回归 29
- 四月返回 30。
- 12 月返回 31。
使用 Jodatime 我已经使用了dayOfMonth()
and getMaximumValue()
,但是我如何ZonedDateTime
在Java 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())
请注意,zdt.with(TemporalAdjusters.lastDayOfMonth())
如果您想保留时间和时区信息,也可以调用。
推荐阅读
- r - 在 ddply/dlply 中嵌套 nlm 函数
- java - 连接到 AWS 海王星
- amazon-web-services - AWS 是否根据传入请求的数量或会话的持续时间收费?
- android - 如何在单个文本视图中为特定文本和点击侦听器设置颜色
- ruby-on-rails - React 与 Ruby on Rails 的集成。
- visual-studio - VS2017 15.7.5 不会自动检出文件
- jquery - jQuery onchange 函数不适用于动态生成的选择标签
- python - 使用脚本扩展 CMake 是一种好习惯吗?
- matlab - Matlab 扩展 EPS 导出中的图形超出限制
- node.js - rabbitmq createConnection 抛出错误 [错误:连接结束:可能是由于身份验证失败。]