Добавьте один день в 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 не добавило ни одного дня. Я не нашел ни одной ошибки.

благодаря


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);
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.