dayOfMonth 的值 31 必须在 [1,30] 三月的范围内

amp*_*ila 0 java datetime parsing date jodatime

我得到:

线程“main” org.joda.time.IllegalFieldValueException 中的异常:无法解析“1444-05-31 10-10”:dayOfMonth 的值 31 必须在 [1,30] 范围内

代码是:

    Chronology hijri = IslamicChronology.getInstanceUTC();
    DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH-mm")
            .withChronology(hijri);
    DateTime hijriDt = formatter.parseDateTime("1444-05-31 10-10");
Run Code Online (Sandbox Code Playgroud)

我在某处读到 joda 从 0 而不是 01 开始计算月份。但是,这是用户输入,需要通过格式化程序进行解析。我不能使用 joda 的常规 setter 和 getter 来设置日期。

bma*_*vus 5

在回历中,第 5 个月需要 30 天。所以没有像 1444-05-31 这样的日子

  • 更明确地说,这不是关于第 5 个月;没有一个月有超过 30 天。我认为您会看到“1444-04-30”(只有 29 天)的不同错误。 (2认同)