Добавьте один день в Joda-Time DateTime

83

У меня свидание Wed May 08 00:00:00 GMT+06:30 2013. Я добавляю к нему один день, используя Joda-Time DateTime вот так.

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

Когда я печатаю dateTime, я получаю эту дату 2013-05-08T00:00:00.000+06:30. Время даты joda не добавило ни одного дня. Я не нашел ни одной ошибки.

благодаря

user1156041
источник
9
Я не знаю joda, но предполагаю, что plusDays()возвращает новый DateTimeобъект. Попробуй datetime = dateTime.plusDays(1). Подтверждено из документов .
Филогенез
@Phylogenesis, возможно, вы захотите опубликовать это в качестве ответа, потому что это правильно.
Barend
1
@Barend сейчас он был отправлен в качестве ответа. Не нужно загромождать вопрос.
Филогенез
1
Я, по-видимому, находился в процессе публикации ответа, когда возникла ветка комментариев. Если бы я видел, как это происходит, я бы согласился, что Филогенез должен быть опубликован в качестве ответа.
Дон Роби

Ответы:

173

plusDaysМетод не является мутатором. Он возвращает копию данного DateTimeобъекта с внесенными изменениями, а не изменяет данный объект.

Если вы действительно хотите изменить dateTimeзначение переменной , вам понадобятся:

DateTime dateTime = new DateTime(date);
dateTime = dateTime.plusDays(1);
Дон Роби
источник
возможно, добавьте слова «Неизменяемый» и «Изменяемый», чтобы лучше объяснить это к такому вопросу
Сэмюэл Оуино
33

Если вы хотите добавить дни к текущему экземпляру даты и времени, используйте MutableDateTime

MutableDateTime dateTime = new MutableDateTime(date);  
dateTime.addDays(1);
Илья
источник