我试图在乔达时间操纵日期。我只是想在未来的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));
我的输出是
Saturday, February 46, 2014.
显然,2月46日不是真实日期。
我有两个问题:
有没有一种简单的方法可以在joda-time中获取正确的日期?
如果不是,我是否误解了乔达时代的目的?我认为它旨在轻松处理此类计算。如果要添加/减去日期,是否最好使用其他库?
最佳答案
http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html
D是一年中的一天,即自1月1日起的天数。
d是每月的一天。因此,您的日期格式为:
DateTimeFormat.forPattern("EEEE, MMMM d, yyyy");
关于java - Java:使用joda-time向DateTime对象添加45天会产生荒谬的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22107101/