http://blog.smartbear.com/programming/date-and-time-manipulation-in-java-using-jodatime/
A DateTime, as it name implies, encodes both the date and the time. It also includes time zone information so that it knows how to interpret it in terms of hours and minutes. This object is immutable, which means it is thread-safe. It also means that when you perform “date math” on that object, you get a brand new DateTime as a result
==> DateTime is immutable.
https://kodejava.org/how-to-add-hours-minutes-seconds-into-datetime-in-joda-time/
A DateTime, as it name implies, encodes both the date and the time. It also includes time zone information so that it knows how to interpret it in terms of hours and minutes. This object is immutable, which means it is thread-safe. It also means that when you perform “date math” on that object, you get a brand new DateTime as a result
==> DateTime is immutable.
ateTime dateTime = new DateTime(date);
dateTime = dateTime.plusDays(1);
If you want add days to current date time instance, use MutableDateTime
MutableDateTime dateTime = new MutableDateTime(date);
dateTime.addDays(1);
Joda Time has another class you may want to use to represent a particular date and time, LocalDateTime. It is very similar to the DateTime, except that it does not include any time zone information (it does not even default to the system time zone; there is no time zone at all). This small difference has a huge impact, since while LocalDateTime has methods such as addHours() (as DateTime does), it cannot possibly calculate things correctly around DST changes, since it is totally unaware of DST.https://kodejava.org/how-to-add-hours-minutes-seconds-into-datetime-in-joda-time/