Додайте один день у 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 не додала жодного дня. Я не знайшов жодної помилки.

Дякую


8
Я не знаю joda, але припускаю, що plusDays()повертає новий DateTimeоб’єкт. Спробуйте datetime = dateTime.plusDays(1). Підтверджено з документів .
Філогенез

@Phylogenesis, можливо, ви захочете опублікувати це як відповідь, оскільки це правильно.
Баренд

1
@Barend це було розміщено як відповідь зараз. Не потрібно захаращувати питання.
Філогенез

1
Очевидно, я був у процесі публікації відповіді, коли сталася нитка коментарів. Якби я бачив, як це відбувається, я б погодився, що Філогенез повинен розмістити його як відповідь.
Дон Робі

Відповіді:


172

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.