2013-05-09 133 views
64

我有日期Wed May 08 00:00:00 GMT+06:30 2013。我通过使用Joda-TimeDateTime这样来添加一天。Joda-Time添加一天DateTime

DateTime dateTime = new DateTime(date); 
dateTime.plusDays(1); 

当我打印日期时间,我得到这个日期2013-05-08T00:00:00.000+06:30。乔达约会时间没有增加一天。我没有发现任何错误。

由于

+8

我不知道joda,但我假设'plusDays()'返回一个新的DateTime对象。试试'datetime = dateTime.plusDays(1)'。从[docs]确认(http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html#plusDays%28int%29)。 – Phylogenesis 2013-05-09 12:07:16

+0

@Phylogenesis你可能想要发布作为答案,因为它是正确的。 – Barend 2013-05-09 12:08:59

+1

@Barend它现在已被张贴为答案。没有必要混淆这个问题。 – Phylogenesis 2013-05-09 12:10:44

回答

135

plusDays方法不是突变子。它会返回给定DateTime对象的副本,而不会更改给定的对象。

如果你想真正改变变量dateTime值,你将需要:

DateTime dateTime = new DateTime(date); 
dateTime = dateTime.plusDays(1); 
28

如果你想加入天为当前日期时间实例,使用MutableDateTime

MutableDateTime dateTime = new MutableDateTime(date); 
dateTime.addDays(1);