Java:使用joda-time向DateTime对象添加45天会产生无意义的日期

Car*_*H20 1 java date

我正试图在joda-time中操纵日期.我只想在未来45天前往.

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

DateTime startDate = new DateTime(2014, 1, 1, 0, 0);
DateTimeFormatter fmt = DateTimeFormat.forPattern("EEEE, MMMM D, yyyy");
DateTime endDate = startDate.plusDays(45);
System.out.println(fmt.print(endDate));
Run Code Online (Sandbox Code Playgroud)

我的输出是

Saturday, February 46, 2014.
Run Code Online (Sandbox Code Playgroud)

显然,2月46日不是真正的约会.

我有两个问题:

  1. 有一种简单的方法可以在joda-time中获得正确的日期吗?
  2. 如果没有,我是否误解了joda-time的目的?我认为它旨在轻松处理这些类型的计算.如果我想添加/减去日期到日期,我最好还是使用另一个库吗?

Mar*_*ope 8

http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html

D是一年中的某一天,即自1月1日以来的天数.

d是月份的日期.所以你的日期格式是:

DateTimeFormat.forPattern("EEEE, MMMM d, yyyy");
Run Code Online (Sandbox Code Playgroud)