These are the release notes and advice for upgrading Joda-Time from version 1.1 to version 1.2.
Joda-Time version 1.2 --------------------- Joda-Time is a date and time handling library that seeks to replace the JDK Date and Calendar classes. This is the third full release of Joda-Time. This release focuses on bug fixes, with a few new features. We recommend JDK 1.3 or later, and have performed no testing on earlier JDKs. Joda-Time is licensed under the business-friendly Apache License Version 2. This is the same license as all of Apache, plus other open source projects such as Spring. The intent is to make the code available to the Java community with the minimum of restrictions. If the license causes you problems please contact the mailing list. ** Please also check out the JSP and Hibernate contributed projects ** Incompatible changes since 1.1 ------------------------------ Binary compatible - Yes, except - The internal classes BaseGJChronology and CommonGJChronology have been removed They were implementation classes and you should not have been using them Please contact the mailing list if this causes you problems Source compatible - Yes - v1.1 and v1.2 are source compatible in their public and protected API Serialization compatible - Yes - Chronology serialization has changed, however the two formats are compatible - v1.1 did not serialize the Chronology minimum days in first week field properly, v1.2 does Data compatible - Yes - DateTimeZone data updated to version 2005q Deprecations since 1.1 ---------------------- - Chronology factory methods, such as getISO() and getCopticUTC() You should now use the chrono package directly: Chronology.getCoptic(zone) is replaced by CopticChronology.getInstance(zone) These factory methods have been removed as they were unable to scale suitably as more and more chronologies are added Bug fixes since 1.1 ------------------- - ZonedChronology getMaximumValue(ReadablePartial)/getMinimumValue(ReadablePartial) Methods returned incorrect result - ZonedChronology Better detection and handling of offset calculation overflow, throwing an ArithmeticException. - DateTimeZone Handles offset calculation overflow errors for instants near Long.MAX_VALUE, ending the offset transition sequence. - DateTimeFormatter Reverts to UTC if time zone offset calculation causes overflow. This allows at least the time of day fields to be printed for instants near Long.MIN_VALUE or Long.MAX_VALUE. - CopticChronology Fixed regression in month of year calculation which affected getMaximumValue on dayOfMonth field. - CopticChronology Fixed month duration field to handle short 13th month correctly. - ZonedChronology Fixed getting text values for fields from getAs[Short]Text(int value, Locale locale). - Gregorian, Julian, GJ and Coptic These Chronology classes did not correctly store the minimum days in first week during serialization - DateTimeFormatter Fixed printing of time zone name near DST transition - YearMonthDay Fixed addition where date starts on a leap day Fixed addition in the GJChronology - DateTimeFormat Pattern letter 'K' was using the wrong underlying implementation Enhancements since 1.1 ---------------------- - IslamicChronology - EthiopicChronology New Chronologies - DateTime.Property.withMaximumValue() (also DateMidnight/YearMonthDay etc) - DateTime.Property.withMinimumValue() Returns a copy of the base datetime with the specified field set to the maximum or minimum value. This is useful to get the last day of the month. - DateTime lastDayOfMonth = dt.dayOfMonth().withMaximumValue(); - DateTime.Property.toInterval() (also DateMidnight/MutableDateTime) New method to convert return an Interval object over the span of the property Thus dt.monthOfYear().toInterval() returns an interval from the start to the end of the month - MutableDateTime.property(DateTimeFieldType) Gets the property by type. Complements the method already on DateTime/DateMidnight. - YearMonthDay.fromCalendarFields() - YearMonthDay.fromDateFields() - TimeOfDay.fromCalendarFields() - TimeOfDay.fromDateFields() New factory methods to create a YearMonthDay/TimeOfDay using exactly the same field values as the JDK objects, thus ignoring time zone effects - FieldUtils Performance optimization when adding by scalars of one or negative one. The overflow detecting multiplication skips the multiply and divide check for these values.