blob: dfb7d361ebfcd162989862db00208a1472dffc43 [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
<properties>
<title>Java date and time API - Upgrade from 2.1 to 2.2</title>
<author>Stephen Colebourne</author>
</properties>
<body>
<section name="Upgrade">
<p>
These are the release notes and advice for upgrading Joda-Time from version 2.1 to version 2.2.
<source>
Joda-Time version 2.2
---------------------
Joda-Time is a date and time handling library that seeks to replace the JDK
Date and Calendar classes.
This is the tenth release of Joda-Time.
This release contains enhancements, bug fixes and a time zone update.
JDK 1.5 or later is required.
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 our related projects **
** http://www.joda.org/joda-time/related.html **
Enhancements since 2.1
----------------------
- Change some StringBuffer uses to StringBuilder [3532330]
- Add method to calculate the Julian Day
See DateTimeUtils
- Add Danish translation of word-based periods (Kasper Laudrup)
- Add Japanese translation of word-based periods (Hajime Senuma)
https://github.com/JodaOrg/joda-time/pull/9
- Parsing of US short time-zone names
The time-zone names EST/EDT/CST/CDT/MST/MDT/PST/PDT/UT/UTC/GMT can now be parsed in a limited way.
This is enabled for formatter patterns of "z" (and "zz" or "zzz").
The builder continues to offer a better way of manually managing this.
- Add new exception, IllegalInstantException
This allows applications to better capture problems with daylight savings gaps
The exception is a subclass of IllegalArgumentException, so existing logic will still work
Compatibility with 2.1
----------------------
Build system - No
- Ant build removed. Build only on Maven now.
Binary compatible - Yes
Source compatible - Yes
Serialization compatible - Yes
Data compatible - Yes, except
- DateTimeZone data updated to version 2012j
Semantic compatible - Yes, except
- DateTimeFormatter.parseInto() retains the year if only month parsed (as it did in v1.x)
- If a formatter cannot print or parse, it will now throw an exception instead of ignoring it
- Format pattern "z" now has limited parsing abilities
Deprecations since 2.1
----------------------
None
Bug fixes since 2.1
-------------------
- DateTime.millisOfDay().withMaximumValue()/withMinimumValue() [159]
Now handle daylight savings gaps
https://sourceforge.net/p/joda-time/bugs/159/
- MonthDay add/subtract [3528941]
Addition and subtraction in MonthDay was fixed.
It previously didn't work when the start value was 29th February.
- LocalDateTime.fromDateFields()
This used to fail before 1970 when the input had a milli-of-second field
Fixed to not throw an exception
- LocalDateTime.fromCalendarFields()/LocalDateTime.fromDateFields()
This used to fail before year 1 as the era was ignored
Fixed to return the correct year
https://github.com/JodaOrg/joda-time/pull/8
- MutableDateTime.setDate(ReadableInstant) [163]
Fixed to handle cross-time-zone issues properly rather than always using UTC
- BasicGJChronology.getDaysInMonthMaxForSet [165]
Fixed calculate the correct maximum length if the input day-of-month value is less than 1
- DateTimeFormatter.parseInto() [3522138]
The v2.0 changes to handle parsing of month/day on their own (for Feb 29th) cause
parseInto() to lose the year. This fix reverts behaviour to v1.x so that parseInto()
will use the supplied year, not the default year of the formatter.
- DateTimeFormatter.isPrinter()/isParser() and related
The Javadoc for DateTimeFormatterBuilder specified behaviour when the formatter
could not print or could not parse, but the code didn't implement it
Now it does, which means that DateTimeFormatter.isPrinter()/isParser() are now correct.
The formatter will also now throw UnsupportedOperationException when unable to print/parse.
- Period formatter [3564249]
Formatting did not correctly output values for negative milliseconds between zero and -1 second
- FieldUtils.safeMultiply(long,int) [3520651]
Fix implementation to throw exception for (Long.MIN_VALUE, -1)
- Fix TestReadableDurationConverter [3515086]
Test case didn't work if deafult time zone was UTC
- Fix Duration string parsing for small negative numbers
Values between 0 and -1 exclusive previously parsed incorrectly
https://github.com/JodaOrg/joda-time/pull/10
- Javadoc fix to BaseChronology [3513326]
- Javadoc fix to Years [169]
- Javadoc fix to LocalTime [171]
- Javadoc clarify on formatter builder [mailing list email]
- Fixed Spanish translation of day for periods - dia now has accented i
https://github.com/JodaOrg/joda-time/pull/5
- Change maven build to use exec-maven-plugin [158]
https://sourceforge.net/p/joda-time/bugs/158/
Scala
--------
Joda-Time uses annotations from Joda-Convert.
In the Java programming language, this dependency is optional, however in Scala it is not.
Scala users must manually add the Joda-Convert v1.2 dependency.
</source>
</p>
</section>
</body>
</document>