<?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> |