You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JodaTime设置2024年2月29日抛异常,寻求解决办法

问题原因

你遇到的问题是链式调用顺序错误导致的。当你先调用withMonthOfYear(2)时,DateTime实例的年份还是默认值(比如当前系统年份,如果是平年的话),平年2月只有28天,这时调用withDayOfMonth(29)会直接触发参数校验抛出异常——后续再设置闰年2024已经来不及,错误早在前一步触发了。

解决方案

调整调用顺序,先设置年份,再设置月份,最后设置日期,让每一步修改都基于合法的闰年状态:

final DateTime selectedDate = new DateTime()
    .withYear(year)
    .withMonthOfYear(month)
    .withDayOfMonth(day);

或者更直接,使用DateTime的多参数构造方法,直接传入年、月、日创建实例,彻底避免中间状态的问题:

final DateTime selectedDate = new DateTime(year, month, day, 0, 0);

这样就能正确创建2024年2月29日的DateTime实例了。

内容的提问来源于stack exchange,提问作者quma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:04:59