Package: libjoda-time-java Followup-For: Bug #797842 User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu wily ubuntu-patch
Dear Maintainer, A debdiff for updating libjoda-time-java from 2.7 to 2.8.2 is attached. The sources can also be obtained by going to LP: #1491530 https://bugs.launchpad.net/ubuntu/+source/libjoda-time-java/+bug/1491530 *** /tmp/tmp5B_fWw/bug_body In Ubuntu, the attached patch was applied to achieve the following: - 2 JRuby mspec tests for timezone do not fail any longer * New upstream release. (LP: #1491530, Closes: #797842) * Refresh patches. Thanks for considering the patch. -- System Information: Debian Release: jessie/sid APT prefers vivid-updates APT policy: (500, 'vivid-updates'), (500, 'vivid-security'), (500, 'vivid'), (100, 'vivid-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.19.0-26-generic (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
diff -Nru libjoda-time-java-2.7/debian/changelog libjoda-time-java-2.8.2/debian/changelog diff -Nru libjoda-time-java-2.7/debian/patches/01-maven2-compatibility.patch libjoda-time-java-2.8.2/debian/patches/01-maven2-compatibility.patch --- libjoda-time-java-2.7/debian/patches/01-maven2-compatibility.patch 2015-05-01 00:52:13.000000000 -0300 +++ libjoda-time-java-2.8.2/debian/patches/01-maven2-compatibility.patch 2015-09-01 23:26:56.000000000 -0300 @@ -3,7 +3,7 @@ Forwarded: no --- a/pom.xml +++ b/pom.xml -@@ -610,7 +610,7 @@ +@@ -614,7 +614,7 @@ <!-- ==================================================================== --> <prerequisites> diff -Nru libjoda-time-java-2.7/pom.xml libjoda-time-java-2.8.2/pom.xml --- libjoda-time-java-2.7/pom.xml 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/pom.xml 2015-08-11 08:57:35.000000000 -0300 @@ -9,7 +9,7 @@ <artifactId>joda-time</artifactId> <packaging>jar</packaging> <name>Joda-Time</name> - <version>2.7</version> + <version>2.8.2</version> <description>Date and time library to replace JDK date handling</description> <url>http://www.joda.org/joda-time/</url> @@ -65,6 +65,10 @@ <url>https://github.com/mebigfatguy</url> </contributor> <contributor> + <name>Dan Cavallaro</name> + <url>https://github.com/dancavallaro</url> + </contributor> + <contributor> <name>Luc Claes</name> <url>https://github.com/lucclaes</url> </contributor> @@ -253,7 +257,7 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> - <version>1.2.1</version> + <version>1.4.0</version> <executions> <execution> <id>compile-tzdb</id> @@ -312,7 +316,7 @@ <manifestFile>src/conf/MANIFEST.MF</manifestFile> <manifestEntries> <Time-Zone-Database-Version>${tz.database.version}</Time-Zone-Database-Version> - <Implementation-Title>Joda-Time-No-TZDB</Implementation-Title> + <Implementation-Title>org.joda.time</Implementation-Title> </manifestEntries> </archive> </configuration> @@ -432,7 +436,7 @@ <plugin><!-- invoke with mvn site-deploy --> <groupId>com.github.github</groupId> <artifactId>site-maven-plugin</artifactId> - <version>0.10</version> + <version>0.12</version> <executions> <execution> <id>github-site</id> @@ -455,9 +459,9 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>clirr-maven-plugin</artifactId> - <version>2.3</version> + <version>2.6.1</version> <configuration> - <comparisonVersion>2.3</comparisonVersion> + <comparisonVersion>2.7</comparisonVersion> <minSeverity>info</minSeverity> <logResults>true</logResults> </configuration> @@ -756,28 +760,28 @@ <!-- ==================================================================== --> <properties> <!-- Plugin version numbers --> - <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version> - <maven-changes-plugin.version>2.9</maven-changes-plugin.version> - <maven-checkstyle-plugin.version>2.11</maven-checkstyle-plugin.version> - <maven-clean-plugin.version>2.5</maven-clean-plugin.version> - <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version> - <maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version> - <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version> - <maven-gpg-plugin.version>1.4</maven-gpg-plugin.version> - <maven-install-plugin.version>2.5.1</maven-install-plugin.version> - <maven-jar-plugin.version>2.4</maven-jar-plugin.version> - <maven-javadoc-plugin.version>2.9.1</maven-javadoc-plugin.version> - <maven-jxr-plugin.version>2.3</maven-jxr-plugin.version> - <maven-plugin-plugin.version>3.2</maven-plugin-plugin.version> - <maven-pmd-plugin.version>3.0.1</maven-pmd-plugin.version> - <maven-project-info-reports-plugin.version>2.7</maven-project-info-reports-plugin.version> - <maven-repository-plugin.version>2.3.1</maven-repository-plugin.version> - <maven-resources-plugin.version>2.6</maven-resources-plugin.version> - <maven-site-plugin.version>3.3</maven-site-plugin.version> - <maven-source-plugin.version>2.2.1</maven-source-plugin.version> - <maven-surefire-plugin.version>2.16</maven-surefire-plugin.version> - <maven-surefire-report-plugin.version>2.16</maven-surefire-report-plugin.version> - <maven-toolchains-plugin.version>1.0</maven-toolchains-plugin.version> + <maven-assembly-plugin.version>2.5.5</maven-assembly-plugin.version> + <maven-changes-plugin.version>2.11</maven-changes-plugin.version> + <maven-checkstyle-plugin.version>2.16</maven-checkstyle-plugin.version> + <maven-clean-plugin.version>2.6.1</maven-clean-plugin.version> + <maven-compiler-plugin.version>3.3</maven-compiler-plugin.version> + <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version> + <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version> + <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version> + <maven-install-plugin.version>2.5.2</maven-install-plugin.version> + <maven-jar-plugin.version>2.6</maven-jar-plugin.version> + <maven-javadoc-plugin.version>2.10.3</maven-javadoc-plugin.version> + <maven-jxr-plugin.version>2.5</maven-jxr-plugin.version> + <maven-plugin-plugin.version>3.4</maven-plugin-plugin.version> + <maven-pmd-plugin.version>3.5</maven-pmd-plugin.version> + <maven-project-info-reports-plugin.version>2.8</maven-project-info-reports-plugin.version> + <maven-repository-plugin.version>2.4</maven-repository-plugin.version> + <maven-resources-plugin.version>2.7</maven-resources-plugin.version> + <maven-site-plugin.version>3.4</maven-site-plugin.version> + <maven-source-plugin.version>2.4</maven-source-plugin.version> + <maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version> + <maven-surefire-report-plugin.version>2.18.1</maven-surefire-report-plugin.version> + <maven-toolchains-plugin.version>1.1</maven-toolchains-plugin.version> <!-- Properties for maven-compiler-plugin --> <maven.compiler.compilerVersion>1.5</maven.compiler.compilerVersion> <maven.compiler.source>1.5</maven.compiler.source> @@ -795,6 +799,6 @@ <!-- Other properties --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <tz.database.version>2014j</tz.database.version> + <tz.database.version>2015f</tz.database.version> </properties> </project> diff -Nru libjoda-time-java-2.7/README.md libjoda-time-java-2.8.2/README.md --- libjoda-time-java-2.7/README.md 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/README.md 2015-08-11 08:57:35.000000000 -0300 @@ -46,11 +46,11 @@ ### Releases -[Release 2.7](http://www.joda.org/joda-time/download.html) is the current latest release. -This release is considered stable and worthy of the 1.x tag. +[Release 2.8.2](http://www.joda.org/joda-time/download.html) is the current latest release. +This release is considered stable and worthy of the 2.x tag. It depends on JDK 1.5 or later. -Available in the [Maven Central repository](http://search.maven.org/#artifactdetails|joda-time|joda-time|2.7|jar) +Available in the [Maven Central repository](http://search.maven.org/#artifactdetails|joda-time|joda-time|2.8.2|jar) ### Related projects diff -Nru libjoda-time-java-2.7/RELEASE-NOTES.txt libjoda-time-java-2.8.2/RELEASE-NOTES.txt --- libjoda-time-java-2.7/RELEASE-NOTES.txt 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/RELEASE-NOTES.txt 2015-08-11 08:57:35.000000000 -0300 @@ -1,5 +1,5 @@ -Joda-Time version 2.7 ---------------------- +Joda-Time version 2.8.2 +----------------------- Joda-Time is a date and time handling library that seeks to replace the JDK Date and Calendar classes. @@ -9,68 +9,30 @@ 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.6 ----------------------- -- Add DateTime.withDate(LocalDate) and DateTime.withTime(LocalTime) [#213] - This was possible using DateTime.withFields(ReadablePartial) but the new methods are clearer +Changes in 2.8.2 +================ +- DateTimeZone data updated to version 2015f -- Added new system property for time-zone loading [#37] - Added system property "org.joda.time.DateTimeZone.Folder". - If set, then it is treated as a file system folder to load time-zone data from. - The folder is loaded using ZoneInfoProvider and must be the unzipped output of ZoneInfoCompiler. - The default behaviour is unchanged, with default time-zone data included in the jar file. -- Produce jar file without time-zone data [#220] - A second jar file is now located in Maven Central with the classifier "no-tzdb". - This is the same as the main joda-time jar file, except that the tzdb data and ZoneInfoCompiler are omitted. - This is intended for use by Android, but could be used in other environments. - If using this alternative jar, a time-zone system property must be set, either - "org.joda.time.DateTimeZone.Provider" or "org.joda.time.DateTimeZone.Folder". - The default behaviour in the standard jar file is unchanged, with time-zone data included in the jar file. +Changes in 2.8.1 +================ +See http://www.joda.org/joda-time/upgradeto281.html -Compatibility with 2.6 ----------------------- -Build system - Yes -Binary compatible - Yes +Changes in 2.8.0 +================ -Source compatible - Yes - -Serialization compatible - Yes - -Data compatible - Yes - - DateTimeZone data still at version 2014j - -Semantic compatible - Yes - - -Deprecations since 2.6 ----------------------- - - -Bug fixes since 2.6 -------------------- -- Fix Asia/Dhaka time-zone [#208] - Problem caused by time-zone ending at 24:00 on December 31st - Model change as being as 23:59:59.999 - -- Fix PeriodFormatter.withLocale to operate on word-based formatting [#187, #191] - Previously, PeriodFormatter.withLocale() had no effect on word-based formatting - Now, the locale used when calling PeriodFormat.wordBased(locale) is passed to the PeriodFormatter. - In addition, if PeriodFormatter.withLocale(locale) is called, then the word-based pattern will - change to a pattern appropriate for that locale. +See http://www.joda.org/joda-time/upgradeto280.html 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. diff -Nru libjoda-time-java-2.7/src/conf/MANIFEST.MF libjoda-time-java-2.8.2/src/conf/MANIFEST.MF --- libjoda-time-java-2.7/src/conf/MANIFEST.MF 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/conf/MANIFEST.MF 2015-08-11 08:57:35.000000000 -0300 @@ -2,22 +2,22 @@ Extension-Name: joda-time Specification-Title: Joda-Time Specification-Vendor: Joda.org -Specification-Version: 2.7 +Specification-Version: 2.8 Implementation-Vendor: Joda.org Implementation-Title: org.joda.time -Implementation-Version: 2.7 +Implementation-Version: 2.8.2 Implementation-Vendor-Id: org.joda Bundle-ManifestVersion: 2 Bundle-Vendor: Joda.org Bundle-Name: Joda-Time Bundle-SymbolicName: joda-time -Bundle-Version: 2.7 -Export-Package: org.joda.time;version=2.7, - org.joda.time.base;version=2.7, - org.joda.time.chrono;version=2.7, - org.joda.time.convert;version=2.7, - org.joda.time.field;version=2.7, - org.joda.time.format;version=2.7, - org.joda.time.tz;version=2.7 +Bundle-Version: 2.8.2 +Export-Package: org.joda.time;version=2.8.2, + org.joda.time.base;version=2.8.2, + org.joda.time.chrono;version=2.8.2, + org.joda.time.convert;version=2.8.2, + org.joda.time.field;version=2.8.2, + org.joda.time.format;version=2.8.2, + org.joda.time.tz;version=2.8.2 Bundle-License: Apache 2.0 Bundle-DocURL: http://www.joda.org/joda-time/ diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/base/AbstractInstant.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/base/AbstractInstant.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/base/AbstractInstant.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/base/AbstractInstant.java 2015-08-11 08:57:35.000000000 -0300 @@ -385,7 +385,7 @@ * comparing solely by millisecond. * * @param instant a millisecond instant to check against - * @return true if this instant is before the instant passed in + * @return true if this instant is equal to the instant passed in */ public boolean isEqual(long instant) { return (getMillis() == instant); @@ -395,7 +395,7 @@ * Is this instant equal to the current instant * comparing solely by millisecond. * - * @return true if this instant is before the current instant + * @return true if this instant is equal to the current instant */ public boolean isEqualNow() { return isEqual(DateTimeUtils.currentTimeMillis()); diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/base/AbstractInterval.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/base/AbstractInterval.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/base/AbstractInterval.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/base/AbstractInterval.java 2015-08-11 08:57:35.000000000 -0300 @@ -424,7 +424,7 @@ * Converts the duration of the interval to a <code>Period</code> using the * All period type. * <p> - * This method should be used to exract the field values describing the + * This method should be used to extract the field values describing the * difference between the start and end instants. * * @return a time period derived from the interval @@ -437,7 +437,7 @@ * Converts the duration of the interval to a <code>Period</code> using the * specified period type. * <p> - * This method should be used to exract the field values describing the + * This method should be used to extract the field values describing the * difference between the start and end instants. * * @param type the requested type of the duration, null means AllType diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/chrono/BasicMonthOfYearDateTimeField.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/chrono/BasicMonthOfYearDateTimeField.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/chrono/BasicMonthOfYearDateTimeField.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/chrono/BasicMonthOfYearDateTimeField.java 2015-08-11 08:57:35.000000000 -0300 @@ -209,7 +209,7 @@ } if (partial.size() > 0 && partial.getFieldType(0).equals(DateTimeFieldType.monthOfYear()) && fieldIndex == 0) { // month is largest field and being added to, such as month-day - int curMonth0 = partial.getValue(0) - 1; + int curMonth0 = values[0] - 1; int newMonth = ((curMonth0 + (valueToAdd % 12) + 12) % 12) + 1; return set(partial, 0, values, newMonth); } diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/Chronology.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/Chronology.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/Chronology.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/Chronology.java 2015-08-11 08:57:35.000000000 -0300 @@ -31,7 +31,7 @@ * <p> * The provided chronology implementations are: * <ul> - * <li>ISO - Based on the ISO8601 standard and suitable for use after about 1600 + * <li>ISO - The <i>de facto<i> world calendar system, based on the ISO-8601 standard * <li>GJ - Historically accurate calendar with Julian followed by Gregorian * <li>Gregorian - The Gregorian calendar system used for all time (proleptic) * <li>Julian - The Julian calendar system used for all time (proleptic) diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/DateTime.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/DateTime.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/DateTime.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/DateTime.java 2015-08-11 08:57:35.000000000 -0300 @@ -138,7 +138,7 @@ * the offset is directly parsed and stored. * As such, {@code DateTime.parse("2010-06-30T01:20+02:00")} and * {@code new DateTime("2010-06-30T01:20+02:00"))} are NOT equal. - * The object produced via this method has a zone of {@code DateTimeZone.forOffsetHours(1)}. + * The object produced via this method has a zone of {@code DateTimeZone.forOffsetHours(2)}. * The object produced via the constructor has a zone of {@code DateTimeZone.getDefault()}. * * @param str the string to parse, not null @@ -713,6 +713,8 @@ * DateTime set = monthOfYear().setCopy(6); * </pre> * <p> + * If the time is invalid on the new date due to the time-zone, the time will be adjusted. + * <p> * This instance is immutable and unaffected by this method call. * * @param year the new year value @@ -723,16 +725,15 @@ */ public DateTime withDate(int year, int monthOfYear, int dayOfMonth) { Chronology chrono = getChronology(); - long instant = getMillis(); - instant = chrono.year().set(instant, year); - instant = chrono.monthOfYear().set(instant, monthOfYear); - instant = chrono.dayOfMonth().set(instant, dayOfMonth); - return withMillis(instant); + long localInstant = chrono.withUTC().getDateTimeMillis(year, monthOfYear, dayOfMonth, getMillisOfDay()); + return withMillis(chrono.getZone().convertLocalToUTC(localInstant, false, getMillis())); } /** * Returns a copy of this datetime with the specified date, retaining the time fields. * <p> + * If the time is invalid on the new date due to the time-zone, the time will be adjusted. + * <p> * This instance is immutable and unaffected by this method call. * * @param date the local date @@ -755,6 +756,8 @@ * DateTime set = dt.hourOfDay().setCopy(6); * </pre> * <p> + * If the new time is invalid due to the time-zone, the time will be adjusted. + * <p> * This instance is immutable and unaffected by this method call. * * @param hourOfDay the hour of the day @@ -766,17 +769,16 @@ */ public DateTime withTime(int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond) { Chronology chrono = getChronology(); - long instant = getMillis(); - instant = chrono.hourOfDay().set(instant, hourOfDay); - instant = chrono.minuteOfHour().set(instant, minuteOfHour); - instant = chrono.secondOfMinute().set(instant, secondOfMinute); - instant = chrono.millisOfSecond().set(instant, millisOfSecond); - return withMillis(instant); + long localInstant = chrono.withUTC().getDateTimeMillis( + getYear(), getMonthOfYear(), getDayOfMonth(), hourOfDay, minuteOfHour, secondOfMinute, millisOfSecond); + return withMillis(chrono.getZone().convertLocalToUTC(localInstant, false, getMillis())); } /** * Returns a copy of this datetime with the specified time, retaining the date fields. * <p> + * If the new time is invalid due to the time-zone, the time will be adjusted. + * <p> * This instance is immutable and unaffected by this method call. * * @param time the local time diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/field/AbstractReadableInstantFieldProperty.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/field/AbstractReadableInstantFieldProperty.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/field/AbstractReadableInstantFieldProperty.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/field/AbstractReadableInstantFieldProperty.java 2015-08-11 08:57:35.000000000 -0300 @@ -370,7 +370,7 @@ DateTimeField field = getField(); long start = field.roundFloor(getMillis()); long end = field.add(start, 1); - Interval interval = new Interval(start, end); + Interval interval = new Interval(start, end, getChronology()); return interval; } diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_da.properties libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_da.properties --- libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_da.properties 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_da.properties 2015-08-11 08:57:35.000000000 -0300 @@ -4,10 +4,10 @@ PeriodFormat.commaspaceand=, og PeriodFormat.commaspace=,\ PeriodFormat.spaceandspace=\ og\ -PeriodFormat.year=\ ?r -PeriodFormat.years=\ ?r -PeriodFormat.month=\ m?ned -PeriodFormat.months=\ m?neder +PeriodFormat.year=\ \u00e5r +PeriodFormat.years=\ \u00e5r +PeriodFormat.month=\ m\u00e5ned +PeriodFormat.months=\ m\u00e5neder PeriodFormat.week=\ uge PeriodFormat.weeks=\ uger PeriodFormat.day=\ dag diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_es.properties libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_es.properties --- libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_es.properties 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_es.properties 2015-08-11 08:57:35.000000000 -0300 @@ -4,14 +4,14 @@ PeriodFormat.commaspaceand=, y PeriodFormat.commaspace=, PeriodFormat.spaceandspace=\ y -PeriodFormat.year=\ a?o -PeriodFormat.years=\ a?os +PeriodFormat.year=\ a\u00f1o +PeriodFormat.years=\ a\u00f1os PeriodFormat.month=\ mes PeriodFormat.months=\ meses PeriodFormat.week=\ semana PeriodFormat.weeks=\ semanas -PeriodFormat.day=\ d?a -PeriodFormat.days=\ d?as +PeriodFormat.day=\ d\u00eda +PeriodFormat.days=\ d\u00edas PeriodFormat.hour=\ hora PeriodFormat.hours=\ horas PeriodFormat.minute=\ minuto diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_fr.properties libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_fr.properties --- libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_fr.properties 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_fr.properties 2015-08-11 08:57:35.000000000 -0300 @@ -4,8 +4,8 @@ PeriodFormat.commaspaceand=, et PeriodFormat.commaspace=, PeriodFormat.spaceandspace=\ et -PeriodFormat.year=\ ann?e -PeriodFormat.years=\ ann?es +PeriodFormat.year=\ ann\u00e9e +PeriodFormat.years=\ ann\u00e9es PeriodFormat.month=\ mois PeriodFormat.months=\ mois PeriodFormat.week=\ semaine diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_pt.properties libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_pt.properties --- libjoda-time-java-2.7/src/main/java/org/joda/time/format/messages_pt.properties 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/messages_pt.properties 2015-08-11 08:57:35.000000000 -0300 @@ -6,7 +6,7 @@ PeriodFormat.spaceandspace=\ e PeriodFormat.year=\ ano PeriodFormat.years=\ anos -PeriodFormat.month=\ m?s +PeriodFormat.month=\ m\u00eas PeriodFormat.months=\ meses PeriodFormat.week=\ semana PeriodFormat.weeks=\ semanas diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/format/PeriodFormatterBuilder.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/PeriodFormatterBuilder.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/format/PeriodFormatterBuilder.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/format/PeriodFormatterBuilder.java 2015-08-11 08:57:35.000000000 -0300 @@ -1573,11 +1573,12 @@ int length = 0; int fractPos = -1; boolean hasDigits = false; + boolean negative = false; while (length < limit) { char c = text.charAt(position + length); // leading sign if (length == 0 && (c == '-' || c == '+') && !iRejectSignedValues) { - boolean negative = c == '-'; + negative = c == '-'; // Next character must be a digit. if (length + 1 >= limit || @@ -1653,7 +1654,7 @@ fractValue *= 10; } } - if (wholeValue < 0) { + if (negative || wholeValue < 0) { fractValue = -fractValue; } } diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/MonthDay.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/MonthDay.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/MonthDay.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/MonthDay.java 2015-08-11 08:57:35.000000000 -0300 @@ -598,6 +598,9 @@ * This month-day instance is immutable and unaffected by this method call. * The month will wrap at the end of the year from December to January. * <p> + * If the number of days added requires wrapping past the end of February, + * the wrapping will be calculated assuming February has 29 days. + * <p> * The following three lines are identical in effect: * <pre> * MonthDay added = md.plusDays(6); diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/Period.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/Period.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/Period.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/Period.java 2015-08-11 08:57:35.000000000 -0300 @@ -501,6 +501,16 @@ * (exposed as 4 weeks and 2 days). * The results are explained by considering that the start date plus the * calculated period result in the end date. + * <p> + * Another special case is around daylight savings. Consider the case where there + * is a DST gap from 01:00 to 02:00. The period from 00:30 to 02:30 will return + * one hour, not two, due to the missing hour. + * However, once the period exceeds one day, a different effect comes into play. + * Consider the period from 00:30 just before the DST gap to 02:30 one day later. + * Since this exceeds a day, the algorithm first adds one day following normal period + * rules, to get 00:30 one day later, and then adds 2 hours to reach 02:30. + * In this way, the DST gap effectively "disappears". + * In other words, the addition of days takes precedence over the addition of hours. * * @param startInstant interval start, null means now * @param endInstant interval end, null means now @@ -519,6 +529,16 @@ * By contrast, 2013-01-31 to 2013-03-30 is treated as one month and 30 days. * The results are explained by considering that the start date plus the * calculated period result in the end date. + * <p> + * Another special case is around daylight savings. Consider the case where there + * is a DST gap from 01:00 to 02:00. The period from 00:30 to 02:30 will return + * one hour, not two, due to the missing hour. + * However, once the period exceeds one day, a different effect comes into play. + * Consider the period from 00:30 just before the DST gap to 02:30 one day later. + * Since this exceeds a day, the algorithm first adds one day following normal period + * rules, to get 00:30 one day later, and then adds 2 hours to reach 02:30. + * In this way, the DST gap effectively "disappears". + * In other words, the addition of days takes precedence over the addition of hours. * * @param startInstant interval start, null means now * @param endInstant interval end, null means now diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/ReadableInterval.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/ReadableInterval.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/ReadableInterval.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/ReadableInterval.java 2015-08-11 08:57:35.000000000 -0300 @@ -260,7 +260,7 @@ * Converts the duration of the interval to a period using the * standard period type. * <p> - * This method should be used to exract the field values describing the + * This method should be used to extract the field values describing the * difference between the start and end instants. * * @return a time period derived from the interval @@ -271,7 +271,7 @@ * Converts the duration of the interval to a period using the * specified period type. * <p> - * This method should be used to exract the field values describing the + * This method should be used to extract the field values describing the * difference between the start and end instants. * * @param type the requested type of the duration, null means standard diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/Seconds.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/Seconds.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/Seconds.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/Seconds.java 2015-08-11 08:57:35.000000000 -0300 @@ -149,7 +149,7 @@ * durations for each field. Only those fields which have a precise duration in * the ISO UTC chronology can be converted. * <ul> - * <li>One week consists of 7 seconds. + * <li>One week consists of 7 days. * <li>One day consists of 24 hours. * <li>One hour consists of 60 minutes. * <li>One minute consists of 60 seconds. diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/DateTimeZoneBuilder.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/DateTimeZoneBuilder.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/DateTimeZoneBuilder.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/DateTimeZoneBuilder.java 2015-08-11 08:57:35.000000000 -0300 @@ -1443,7 +1443,7 @@ curNameKey.equals(zoneNameData[2]) && curNameKey.equals(zoneNameData[4])) { - if (ZoneInfoCompiler.verbose()) { + if (ZoneInfoLogger.verbose()) { System.out.println("Fixing duplicate name key - " + nextNameKey); System.out.println(" - " + new DateTime(trans[i], chrono) + " - " + new DateTime(trans[i + 1], chrono)); @@ -1460,7 +1460,7 @@ if (tailZone != null) { if (tailZone.iStartRecurrence.getNameKey() .equals(tailZone.iEndRecurrence.getNameKey())) { - if (ZoneInfoCompiler.verbose()) { + if (ZoneInfoLogger.verbose()) { System.out.println("Fixing duplicate recurrent name key - " + tailZone.iStartRecurrence.getNameKey()); } diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/DefaultNameProvider.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/DefaultNameProvider.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/DefaultNameProvider.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/DefaultNameProvider.java 2015-08-11 08:57:35.000000000 -0300 @@ -70,30 +70,30 @@ String[][] zoneStringsEn = DateTimeUtils.getDateFormatSymbols(Locale.ENGLISH).getZoneStrings(); String[] setEn = null; for (String[] strings : zoneStringsEn) { - if (strings != null && strings.length == 5 && id.equals(strings[0])) { - setEn = strings; - break; - } + if (strings != null && strings.length >= 5 && id.equals(strings[0])) { + setEn = strings; + break; + } } String[][] zoneStringsLoc = DateTimeUtils.getDateFormatSymbols(locale).getZoneStrings(); String[] setLoc = null; for (String[] strings : zoneStringsLoc) { - if (strings != null && strings.length == 5 && id.equals(strings[0])) { - setLoc = strings; - break; - } + if (strings != null && strings.length >= 5 && id.equals(strings[0])) { + setLoc = strings; + break; + } } if (setEn != null && setLoc != null) { - byNameKeyCache.put(setEn[2], new String[] {setLoc[2], setLoc[1]}); - // need to handle case where summer and winter have the same - // abbreviation, such as EST in Australia [1716305] - // we handle this by appending "-Summer", cf ZoneInfoCompiler - if (setEn[2].equals(setEn[4])) { - byNameKeyCache.put(setEn[4] + "-Summer", new String[] {setLoc[4], setLoc[3]}); - } else { - byNameKeyCache.put(setEn[4], new String[] {setLoc[4], setLoc[3]}); - } + byNameKeyCache.put(setEn[2], new String[] {setLoc[2], setLoc[1]}); + // need to handle case where summer and winter have the same + // abbreviation, such as EST in Australia [1716305] + // we handle this by appending "-Summer", cf ZoneInfoCompiler + if (setEn[2].equals(setEn[4])) { + byNameKeyCache.put(setEn[4] + "-Summer", new String[] {setLoc[4], setLoc[3]}); + } else { + byNameKeyCache.put(setEn[4], new String[] {setLoc[4], setLoc[3]}); + } } } return (String[]) byNameKeyCache.get(nameKey); @@ -116,6 +116,9 @@ if (locale == null || id == null || nameKey == null) { return null; } + if (id.startsWith("Etc/")) { + id = id.substring(4); + } Map<String, Map<Boolean, Object>> byIdCache = iByLocaleCache2.get(locale); if (byIdCache == null) { @@ -129,23 +132,23 @@ String[][] zoneStringsEn = DateTimeUtils.getDateFormatSymbols(Locale.ENGLISH).getZoneStrings(); String[] setEn = null; for (String[] strings : zoneStringsEn) { - if (strings != null && strings.length == 5 && id.equals(strings[0])) { - setEn = strings; - break; - } + if (strings != null && strings.length >= 5 && id.equals(strings[0])) { + setEn = strings; + break; + } } String[][] zoneStringsLoc = DateTimeUtils.getDateFormatSymbols(locale).getZoneStrings(); String[] setLoc = null; for (String[] strings : zoneStringsLoc) { - if (strings != null && strings.length == 5 && id.equals(strings[0])) { - setLoc = strings; - break; - } + if (strings != null && strings.length >= 5 && id.equals(strings[0])) { + setLoc = strings; + break; + } } if (setEn != null && setLoc != null) { - byNameKeyCache.put(Boolean.TRUE, new String[] {setLoc[2], setLoc[1]}); - byNameKeyCache.put(Boolean.FALSE, new String[] {setLoc[4], setLoc[3]}); + byNameKeyCache.put(Boolean.TRUE, new String[] {setLoc[2], setLoc[1]}); + byNameKeyCache.put(Boolean.FALSE, new String[] {setLoc[4], setLoc[3]}); } } return (String[]) byNameKeyCache.get(Boolean.valueOf(standardTime)); diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/africa libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/africa --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/africa 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/africa 2015-08-11 08:57:35.000000000 -0300 @@ -319,35 +319,30 @@ # above) says DST had no affect on electricity consumption. There is # no information about when DST will end this fall. See: # http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833 -# -# For now, guess that later spring and fall transitions will use -# 2010's rules, and guess that Egypt will switch to standard time at -# 24:00 the last Thursday before Ramadan, and back to DST at 00:00 the -# first Friday after Ramadan. To implement this, -# transition dates for 2015 through 2037 were determined by running -# the following program under GNU Emacs 24.3, with the results integrated -# by hand into the table below. Ramadan again intrudes on the guessed -# DST starting in 2038, but that's beyond our somewhat-arbitrary cutoff. -# (let ((islamic-year 1436)) -# (while (< islamic-year 1460) -# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) -# (b (calendar-islamic-to-absolute (list 10 1 islamic-year))) -# (friday 5)) -# (while (/= friday (mod a 7)) -# (setq a (1- a))) -# (while (/= friday (mod b 7)) -# (setq b (1+ b))) -# (setq a (1- a)) -# (setq b (1- b)) -# (setq a (calendar-gregorian-from-absolute a)) -# (setq b (calendar-gregorian-from-absolute b)) -# (insert -# (format -# (concat "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t0\t-\n" -# "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t1:00\tS\n") -# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a)) -# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b))))) -# (setq islamic-year (+ 1 islamic-year)))) + +# From Steffen Thorsen (2015-04-08): +# Egypt will start DST on midnight after Thursday, April 30, 2015. +# This is based on a law (no 35) from May 15, 2014 saying it starts the last +# Thursday of April.... Clocks will still be turned back for Ramadan, but +# dates not yet announced.... +# http://almogaz.com/news/weird-news/2015/04/05/1947105 ... +# http://www.timeanddate.com/news/time/egypt-starts-dst-2015.html + +# From Ahmed Nazmy (2015-04-20): +# Egypt's ministers cabinet just announced ... that it will cancel DST at +# least for 2015. +# +# From Tim Parenti (2015-04-20): +# http://english.ahram.org.eg/WriterArticles/NewsContentP/1/128195/Egypt/No-daylight-saving-this-summer-Egypts-prime-minist.aspx +# "Egypt's cabinet agreed on Monday not to switch clocks for daylight saving +# time this summer, and carry out studies on the possibility of canceling the +# practice altogether in future years." +# +# From Paul Eggert (2015-04-24): +# Yesterday the office of Egyptian President El-Sisi announced his +# decision to abandon DST permanently. See Ahram Online 2015-04-24. +# http://english.ahram.org.eg/NewsContent/1/64/128509/Egypt/Politics-/Sisi-cancels-daylight-saving-time-in-Egypt.aspx + Rule Egypt 2008 only - Aug lastThu 24:00 0 - Rule Egypt 2009 only - Aug 20 24:00 0 - Rule Egypt 2010 only - Aug 10 24:00 0 - @@ -356,22 +351,7 @@ Rule Egypt 2014 only - May 15 24:00 1:00 S Rule Egypt 2014 only - Jun 26 24:00 0 - Rule Egypt 2014 only - Jul 31 24:00 1:00 S -Rule Egypt 2014 max - Sep lastThu 24:00 0 - -Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S -Rule Egypt 2015 only - Jun 11 24:00 0 - -Rule Egypt 2015 only - Jul 23 24:00 1:00 S -Rule Egypt 2016 only - Jun 2 24:00 0 - -Rule Egypt 2016 only - Jul 7 24:00 1:00 S -Rule Egypt 2017 only - May 25 24:00 0 - -Rule Egypt 2017 only - Jun 29 24:00 1:00 S -Rule Egypt 2018 only - May 10 24:00 0 - -Rule Egypt 2018 only - Jun 14 24:00 1:00 S -Rule Egypt 2019 only - May 2 24:00 0 - -Rule Egypt 2019 only - Jun 6 24:00 1:00 S -Rule Egypt 2020 only - May 28 24:00 1:00 S -Rule Egypt 2021 only - May 13 24:00 1:00 S -Rule Egypt 2022 only - May 5 24:00 1:00 S -Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S +Rule Egypt 2014 only - Sep lastThu 24:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:09 - LMT 1900 Oct @@ -558,7 +538,7 @@ # From Alex Krivenyshev (2008-07-11): # Seems that English language article "The revival of daylight saving -# time: Energy conservation?"-# No. 16578 (07/11/2008) was originally +# time: Energy conservation?"- No. 16578 (07/11/2008) was originally # published on Monday, June 30, 2008... # # I guess that article in French "Le gouvernement avance l'introduction @@ -690,7 +670,7 @@ # Here is a link to official document from Royaume du Maroc Premier Ministre, # Minist??re de la Modernisation des Secteurs Publics # -# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 june 1967) +# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 June 1967) # concerning the amendment of the legal time, the Ministry of Modernization of # Public Sectors announced that the official time in the Kingdom will be # advanced 60 minutes from Sunday 31 May 2009 at midnight. @@ -808,20 +788,41 @@ # will resume again at 02:00 on Saturday, August 2, 2014.... # http://www.mmsp.gov.ma/fr/actualites.aspx?id=586 -# From Paul Eggert (2014-06-05): -# For now, guess that later spring and fall transitions will use 2014's rules, +# From Milamber (2015-06-08): +# (Google Translation) The hour will thus be delayed 60 minutes +# Sunday, June 14 at 3:00, the ministry said in a statement, adding +# that the time will be advanced again 60 minutes Sunday, July 19, +# 2015 at 2:00. The move comes under 2.12.126 Decree of 26 Jumada I +# 1433 (18 April 2012) and the decision of the Head of Government of +# 16 N. 3-29-15 Chaaban 1435 (4 June 2015). +# Source (french): +# http://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/ +# +# From Milamber (2015-06-09): +# http://www.mmsp.gov.ma/fr/actualites.aspx?id=863 +# +# From Michael Deckers (2015-06-09): +# [The gov.ma announcement] would (probably) make the switch on 2015-07-19 go +# from 03:00 to 04:00 rather than from 02:00 to 03:00, as in the patch.... +# I think the patch is correct and the quoted text is wrong; the text in +# <http://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/> agrees +# with the patch. + +# From Paul Eggert (2015-06-08): +# For now, guess that later spring and fall transitions will use 2015's rules, # and guess that Morocco will switch to standard time at 03:00 the last -# Saturday before Ramadan, and back to DST at 02:00 the first Saturday after -# Ramadan. To implement this, transition dates for 2015 through 2037 were +# Sunday before Ramadan, and back to DST at 02:00 the first Sunday after +# Ramadan. To implement this, transition dates for 2016 through 2037 were # determined by running the following program under GNU Emacs 24.3, with the # results integrated by hand into the table below. -# (let ((islamic-year 1436)) +# (let ((islamic-year 1437)) +# (require 'cal-islam) # (while (< islamic-year 1460) # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) # (b (calendar-islamic-to-absolute (list 10 1 islamic-year))) -# (saturday 6)) -# (while (/= saturday (mod (setq a (1- a)) 7))) -# (while (/= saturday (mod b 7)) +# (sunday 0)) +# (while (/= sunday (mod (setq a (1- a)) 7))) +# (while (/= sunday (mod b 7)) # (setq b (1+ b))) # (setq a (calendar-gregorian-from-absolute a)) # (setq b (calendar-gregorian-from-absolute b)) @@ -865,32 +866,30 @@ Rule Morocco 2013 only - Jul 7 3:00 0 - Rule Morocco 2013 only - Aug 10 2:00 1:00 S Rule Morocco 2013 max - Oct lastSun 3:00 0 - -Rule Morocco 2014 2022 - Mar lastSun 2:00 1:00 S +Rule Morocco 2014 2021 - Mar lastSun 2:00 1:00 S Rule Morocco 2014 only - Jun 28 3:00 0 - Rule Morocco 2014 only - Aug 2 2:00 1:00 S -Rule Morocco 2015 only - Jun 13 3:00 0 - -Rule Morocco 2015 only - Jul 18 2:00 1:00 S -Rule Morocco 2016 only - Jun 4 3:00 0 - -Rule Morocco 2016 only - Jul 9 2:00 1:00 S -Rule Morocco 2017 only - May 20 3:00 0 - -Rule Morocco 2017 only - Jul 1 2:00 1:00 S -Rule Morocco 2018 only - May 12 3:00 0 - -Rule Morocco 2018 only - Jun 16 2:00 1:00 S -Rule Morocco 2019 only - May 4 3:00 0 - -Rule Morocco 2019 only - Jun 8 2:00 1:00 S -Rule Morocco 2020 only - Apr 18 3:00 0 - -Rule Morocco 2020 only - May 30 2:00 1:00 S -Rule Morocco 2021 only - Apr 10 3:00 0 - -Rule Morocco 2021 only - May 15 2:00 1:00 S -Rule Morocco 2022 only - Apr 2 3:00 0 - -Rule Morocco 2022 only - May 7 2:00 1:00 S -Rule Morocco 2023 only - Apr 22 2:00 1:00 S -Rule Morocco 2024 only - Apr 13 2:00 1:00 S -Rule Morocco 2025 only - Apr 5 2:00 1:00 S +Rule Morocco 2015 only - Jun 14 3:00 0 - +Rule Morocco 2015 only - Jul 19 2:00 1:00 S +Rule Morocco 2016 only - Jun 5 3:00 0 - +Rule Morocco 2016 only - Jul 10 2:00 1:00 S +Rule Morocco 2017 only - May 21 3:00 0 - +Rule Morocco 2017 only - Jul 2 2:00 1:00 S +Rule Morocco 2018 only - May 13 3:00 0 - +Rule Morocco 2018 only - Jun 17 2:00 1:00 S +Rule Morocco 2019 only - May 5 3:00 0 - +Rule Morocco 2019 only - Jun 9 2:00 1:00 S +Rule Morocco 2020 only - Apr 19 3:00 0 - +Rule Morocco 2020 only - May 24 2:00 1:00 S +Rule Morocco 2021 only - Apr 11 3:00 0 - +Rule Morocco 2021 only - May 16 2:00 1:00 S +Rule Morocco 2022 only - May 8 2:00 1:00 S +Rule Morocco 2023 only - Apr 23 2:00 1:00 S +Rule Morocco 2024 only - Apr 14 2:00 1:00 S +Rule Morocco 2025 only - Apr 6 2:00 1:00 S Rule Morocco 2026 max - Mar lastSun 2:00 1:00 S -Rule Morocco 2035 only - Oct 27 3:00 0 - -Rule Morocco 2036 only - Oct 18 3:00 0 - -Rule Morocco 2037 only - Oct 10 3:00 0 - +Rule Morocco 2036 only - Oct 19 3:00 0 - +Rule Morocco 2037 only - Oct 4 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/antarctica libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/antarctica --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/antarctica 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/antarctica 2015-08-11 08:57:35.000000000 -0300 @@ -15,41 +15,6 @@ # I made up all time zone abbreviations mentioned here; corrections welcome! # FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited. -# These rules are stolen from the 'southamerica' file. -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule ArgAQ 1964 1966 - Mar 1 0:00 0 - -Rule ArgAQ 1964 1966 - Oct 15 0:00 1:00 S -Rule ArgAQ 1967 only - Apr 2 0:00 0 - -Rule ArgAQ 1967 1968 - Oct Sun>=1 0:00 1:00 S -Rule ArgAQ 1968 1969 - Apr Sun>=1 0:00 0 - -Rule ArgAQ 1974 only - Jan 23 0:00 1:00 S -Rule ArgAQ 1974 only - May 1 0:00 0 - -Rule ChileAQ 1972 1986 - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1974 1987 - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 1987 only - Apr 12 3:00u 0 - -Rule ChileAQ 1988 1989 - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1988 only - Oct Sun>=1 4:00u 1:00 S -Rule ChileAQ 1989 only - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 1990 only - Mar 18 3:00u 0 - -Rule ChileAQ 1990 only - Sep 16 4:00u 1:00 S -Rule ChileAQ 1991 1996 - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1991 1997 - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 1997 only - Mar 30 3:00u 0 - -Rule ChileAQ 1998 only - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1998 only - Sep 27 4:00u 1:00 S -Rule ChileAQ 1999 only - Apr 4 3:00u 0 - -Rule ChileAQ 1999 2010 - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 2000 2007 - Mar Sun>=9 3:00u 0 - -# N.B.: the end of March 29 in Chile is March 30 in Universal time, -# which is used below in specifying the transition. -Rule ChileAQ 2008 only - Mar 30 3:00u 0 - -Rule ChileAQ 2009 only - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 2010 only - Apr Sun>=1 3:00u 0 - -Rule ChileAQ 2011 only - May Sun>=2 3:00u 0 - -Rule ChileAQ 2011 only - Aug Sun>=16 4:00u 1:00 S -Rule ChileAQ 2012 max - Apr Sun>=23 3:00u 0 - -Rule ChileAQ 2012 max - Sep Sun>=2 4:00u 1:00 S - # Argentina - year-round bases # Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05 # Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01 @@ -344,20 +309,7 @@ # USA - year-round bases # # Palmer, Anvers Island, since 1965 (moved 2 miles in 1968) -# -# From Ethan Dicks (1996-10-06): -# It keeps the same time as Punta Arenas, Chile, because, just like us -# and the South Pole, that's the other end of their supply line.... -# I verified with someone who was there that since 1980, -# Palmer has followed Chile. Prior to that, before the Falklands War, -# Palmer used to be supplied from Argentina. -# -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Antarctica/Palmer 0 - zzz 1965 - -4:00 ArgAQ AR%sT 1969 Oct 5 - -3:00 ArgAQ AR%sT 1982 May - -4:00 ChileAQ CL%sT -# +# See 'southamerica' for Antarctica/Palmer, since it uses South American DST. # # McMurdo Station, Ross Island, since 1955-12 # Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20 diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/asia libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/asia --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/asia 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/asia 2015-08-11 08:57:35.000000000 -0300 @@ -6,7 +6,7 @@ # t...@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. -# From Paul Eggert (2014-10-31): +# From Paul Eggert (2015-08-08): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), @@ -43,7 +43,7 @@ # 2:00 EET EEST Eastern European Time # 2:00 IST IDT Israel # 3:00 AST ADT Arabia* -# 3:30 IRST IRDT Iran +# 3:30 IRST IRDT Iran* # 4:00 GST Gulf* # 5:30 IST India # 7:00 ICT Indochina, most times and locations* @@ -52,10 +52,11 @@ # 8:00 CST China # 8:00 IDT Indochina, 1943-45, 1947-55, 1960-75 (some locations)* # 8:00 JWST Western Standard Time (Japan, 1896/1937)* +# 8:30 KST KDT Korea when at +0830* # 9:00 JCST Central Standard Time (Japan, 1896/1937) # 9:00 WIT east Indonesia (Waktu Indonesia Timur) # 9:00 JST JDT Japan -# 9:00 KST KDT Korea +# 9:00 KST KDT Korea when at +09 # 9:30 ACST Australian Central Standard Time # # See the 'europe' file for Russia and Turkey in Asia. @@ -145,10 +146,7 @@ 4:00 Azer AZ%sT # Bahrain -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Bahrain 3:22:20 - LMT 1920 # Manamah - 4:00 - GST 1972 Jun - 3:00 - AST +# See Asia/Qatar. # Bangladesh # From Alexander Krivenyshev (2009-05-13): @@ -1030,7 +1028,7 @@ # # From Roozbeh Pournader (2007-11-05): # This is quoted from Official Gazette of the Islamic Republic of -# Iran, Volume 63, Number 18242, dated Tuesday 1386/6/24 +# Iran, Volume 63, No. 18242, dated Tuesday 1386/6/24 # [2007-10-16]. I am doing the best translation I can:... # The official time of the country will be moved forward for one hour # on the 24 hours of the first day of the month of Farvardin and will @@ -1560,7 +1558,7 @@ # - Qyzylorda switched from +5:00 to +6:00 on 1992-01-19 02:00. # - Oral switched from +5:00 to +4:00 in spring 1989. -# From Kazakhstan Embassy's News Bulletin #11 +# From Kazakhstan Embassy's News Bulletin No. 11 # <http://www.kazsociety.org.uk/news/2005/03/30.htm> (2005-03-21): # The Government of Kazakhstan passed a resolution March 15 abolishing # daylight saving time citing lack of economic benefits and health @@ -1714,6 +1712,17 @@ # # For Pyongyang we have no information; guess no changes since World War II. +# From Steffen Thorsen (2015-08-07): +# According to many news sources, North Korea is going to change to +# the 8:30 time zone on August 15, one example: +# http://www.bbc.com/news/world-asia-33815049 +# +# From Paul Eggert (2015-08-07): +# No transition time is specified; assume 00:00. +# There is no common English-language abbreviation for this time zone. +# Use %z rather than invent one. We can't assume %z works everywhere yet, +# so for now substitute its output manually. + # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1 8:30 - KST 1912 Jan 1 @@ -1726,14 +1735,13 @@ 8:30 - KST 1912 Jan 1 9:00 - JCST 1937 Oct 1 9:00 - JST 1945 Aug 24 - 9:00 - KST + 9:00 - KST 2015 Aug 15 + 8:30 - KST ############################################################################### # Kuwait -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Kuwait 3:11:56 - LMT 1950 - 3:00 - AST +# See Asia/Riyadh. # Laos # See Asia/Bangkok. @@ -1909,6 +1917,13 @@ # was at the start of 2008-03-31 (the day of Steffen Thorsen's report); # this is almost surely wrong. +# From Ganbold Tsagaankhuu (2015-03-10): +# It seems like yesterday Mongolian Government meeting has concluded to use +# daylight saving time in Mongolia.... Starting at 2:00AM of last Saturday of +# March 2015, daylight saving time starts. And 00:00AM of last Saturday of +# September daylight saving time ends. Source: +# http://zasag.mn/news/view/8969 + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Mongol 1983 1984 - Apr 1 0:00 1:00 S Rule Mongol 1983 only - Oct 1 0:00 0 - @@ -1929,6 +1944,8 @@ Rule Mongol 2001 only - Apr lastSat 2:00 1:00 S Rule Mongol 2001 2006 - Sep lastSat 2:00 0 - Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 S +Rule Mongol 2015 max - Mar lastSat 2:00 1:00 S +Rule Mongol 2015 max - Sep lastSat 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] # Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta @@ -1954,12 +1971,7 @@ 5:45 - NPT # Nepal Time # Oman - -# Milne says 3:54:24 was the meridian of the Muscat Tidal Observatory. - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Muscat 3:54:24 - LMT 1920 - 4:00 - GST +# See Asia/Dubai. # Pakistan @@ -2352,13 +2364,19 @@ # official source...: # http://www.palestinecabinet.gov.ps/ar/Views/ViewDetails.aspx?pid=1252 -# From Paul Eggert (2013-09-24): -# For future dates, guess the last Thursday in March at 24:00 through -# the first Friday on or after September 21 at 00:00. This is consistent with -# the predictions in today's editions of the following URLs, -# which are for Gaza and Hebron respectively: -# http://www.timeanddate.com/worldclock/timezone.html?n=702 -# http://www.timeanddate.com/worldclock/timezone.html?n=2364 +# From Steffen Thorsen (2015-03-03): +# Sources such as http://www.alquds.com/news/article/view/id/548257 +# and http://www.raya.ps/ar/news/890705.html say Palestine areas will +# start DST on 2015-03-28 00:00 which is one day later than expected. +# +# From Paul Eggert (2015-03-03): +# http://www.timeanddate.com/time/change/west-bank/ramallah?year=2014 +# says that the fall 2014 transition was Oct 23 at 24:00. +# For future dates, guess the last Friday in March at 24:00 through +# the first Friday on or after October 21 at 00:00. This is consistent with +# the predictions in today's editions of the following URLs: +# http://www.timeanddate.com/time/change/gaza-strip/gaza +# http://www.timeanddate.com/time/change/west-bank/hebron # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S @@ -2384,9 +2402,11 @@ Rule Palestine 2011 only - Aug 1 0:00 0 - Rule Palestine 2011 only - Aug 30 0:00 1:00 S Rule Palestine 2011 only - Sep 30 0:00 0 - -Rule Palestine 2012 max - Mar lastThu 24:00 1:00 S +Rule Palestine 2012 2014 - Mar lastThu 24:00 1:00 S Rule Palestine 2012 only - Sep 21 1:00 0 - -Rule Palestine 2013 max - Sep Fri>=21 0:00 0 - +Rule Palestine 2013 only - Sep Fri>=21 0:00 0 - +Rule Palestine 2014 max - Oct Fri>=21 0:00 0 - +Rule Palestine 2015 max - Mar lastFri 24:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct @@ -2453,6 +2473,7 @@ Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha 4:00 - GST 1972 Jun 3:00 - AST +Link Asia/Qatar Asia/Bahrain # Saudi Arabia # @@ -2479,6 +2500,8 @@ # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 3:00 - AST +Link Asia/Riyadh Asia/Aden # Yemen +Link Asia/Riyadh Asia/Kuwait # Singapore # taken from Mok Ly Yng (2003-10-30) @@ -2767,6 +2790,7 @@ # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Dubai 3:41:12 - LMT 1920 4:00 - GST +Link Asia/Dubai Asia/Muscat # Oman # Uzbekistan # Byalokoz 1919 says Uzbekistan was 4:27:53. @@ -2851,10 +2875,4 @@ 7:00 - ICT # Yemen - -# Milne says 2:59:54 was the meridian of the saluting battery at Aden, -# and that Yemen was at 1:55:56, the meridian of the Hagia Sophia. - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Aden 2:59:54 - LMT 1950 - 3:00 - AST +# See Asia/Riyadh. diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/australasia libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/australasia --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/australasia 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/australasia 2015-08-11 08:57:35.000000000 -0300 @@ -373,6 +373,7 @@ 9:39:00 - LMT 1901 # Agana 10:00 - GST 2000 Dec 23 # Guam 10:00 - ChST # Chamorro Standard Time +Link Pacific/Guam Pacific/Saipan # N Mariana Is # Kiribati # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -388,12 +389,7 @@ 14:00 - LINT # N Mariana Is -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Pacific/Saipan -14:17:00 - LMT 1844 Dec 31 - 9:43:00 - LMT 1901 - 9:00 - MPT 1969 Oct # N Mariana Is Time - 10:00 - MPT 2000 Dec 23 - 10:00 - ChST # Chamorro Standard Time +# See Pacific/Guam. # Marshall Is # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -563,6 +559,7 @@ -11:00 - NST 1967 Apr # N=Nome -11:00 - BST 1983 Nov 30 # B=Bering -11:00 - SST # S=Samoa +Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands # Samoa (formerly and also known as Western Samoa) @@ -744,23 +741,7 @@ # uninhabited # Midway -# -# From Mark Brader (2005-01-23): -# [Fallacies and Fantasies of Air Transport History, by R.E.G. Davies, -# published 1994 by Paladwr Press, McLean, VA, USA; ISBN 0-9626483-5-3] -# reproduced a Pan American Airways timetable from 1936, for their weekly -# "Orient Express" flights between San Francisco and Manila, and connecting -# flights to Chicago and the US East Coast. As it uses some time zone -# designations that I've never seen before:.... -# Fri. 6:30A Lv. HONOLOLU (Pearl Harbor), H.I. H.L.T. Ar. 5:30P Sun. -# " 3:00P Ar. MIDWAY ISLAND . . . . . . . . . M.L.T. Lv. 6:00A " -# -Zone Pacific/Midway -11:49:28 - LMT 1901 - -11:00 - NST 1956 Jun 3 - -11:00 1:00 NDT 1956 Sep 2 - -11:00 - NST 1967 Apr # N=Nome - -11:00 - BST 1983 Nov 30 # B=Bering - -11:00 - SST # S=Samoa +# See Pacific/Pago_Pago. # Palmyra # uninhabited since World War II; was probably like Pacific/Kiritimati diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/backward libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/backward --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/backward 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/backward 2015-08-11 08:57:35.000000000 -0300 @@ -5,7 +5,7 @@ # and their old names. Many names changed in late 1993. # Link TARGET LINK-NAME -Link Africa/Asmara Africa/Asmera +Link Africa/Nairobi Africa/Asmera Link Africa/Abidjan Africa/Timbuktu Link America/Argentina/Catamarca America/Argentina/ComodRivadavia Link America/Adak America/Atka @@ -20,6 +20,7 @@ Link America/Indiana/Knox America/Knox_IN Link America/Kentucky/Louisville America/Louisville Link America/Argentina/Mendoza America/Mendoza +Link America/Toronto America/Montreal Link America/Rio_Branco America/Porto_Acre Link America/Argentina/Cordoba America/Rosario Link America/Denver America/Shiprock diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/europe libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/europe --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/europe 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/europe 2015-08-11 08:57:35.000000000 -0300 @@ -76,7 +76,7 @@ # 1:00:14 SET Swedish (1879-1899)* # 2:00 EET EEST Eastern Europe # 3:00 FET Further-eastern Europe (2011-2014)* -# 3:00 MSK MSD MSM* Moscow +# 3:00 MSK MSD MSM* Minsk, Moscow # From Peter Ilieve (1994-12-04), # The original six [EU members]: Belgium, France, (West) Germany, Italy, @@ -193,11 +193,14 @@ # republished in Finest Hour (Spring 2002) 1(114):26 # http://www.winstonchurchill.org/images/finesthour/Vol.01%20No.114.pdf -# From Paul Eggert (1996-09-03): +# From Paul Eggert (2015-08-08): # The OED Supplement says that the English originally said "Daylight Saving" # when they were debating the adoption of DST in 1908; but by 1916 this # term appears only in quotes taken from DST's opponents, whereas the # proponents (who eventually won the argument) are quoted as using "Summer". +# The term "Summer Time" was introduced by Herbert Samuel, Home Secretary; see: +# Viscount Samuel. Leisure in a Democracy. Cambridge University Press +# ISBN 978-1-107-49471-8 (1949, reissued 2015), p 8. # From Arthur David Olson (1989-01-19): # A source at the British Information Office in New York avers that it's @@ -343,7 +346,7 @@ # From an anonymous contributor (1996-06-02): # The law governing time in Ireland is under Statutory Instrument SI 395/94, -# which gives force to European Union 7th Council Directive # 94/21/EC. +# which gives force to European Union 7th Council Directive No. 94/21/EC. # Under this directive, the Minister for Justice in Ireland makes appropriate # regulations. I spoke this morning with the Secretary of the Department of # Justice (tel +353 1 678 9711) who confirmed to me that the correct name is @@ -592,11 +595,11 @@ Rule Russia 1921 only - Mar 20 23:00 2:00 MSM # Midsummer Rule Russia 1921 only - Sep 1 0:00 1:00 MSD Rule Russia 1921 only - Oct 1 0:00 0 - -# Act No.925 of the Council of Ministers of the USSR (1980-10-24): +# Act No. 925 of the Council of Ministers of the USSR (1980-10-24): Rule Russia 1981 1984 - Apr 1 0:00 1:00 S Rule Russia 1981 1983 - Oct 1 0:00 0 - -# Act No.967 of the Council of Ministers of the USSR (1984-09-13), repeated in -# Act No.227 of the Council of Ministers of the USSR (1989-03-14): +# Act No. 967 of the Council of Ministers of the USSR (1984-09-13), repeated in +# Act No. 227 of the Council of Ministers of the USSR (1989-03-14): Rule Russia 1984 1991 - Sep lastSun 2:00s 0 - Rule Russia 1985 1991 - Mar lastSun 2:00s 1:00 S # @@ -828,7 +831,7 @@ # Bulgaria # # From Plamen Simenov via Steffen Thorsen (1999-09-09): -# A document of Government of Bulgaria (No.94/1997) says: +# A document of Government of Bulgaria (No. 94/1997) says: # EET -> EETDST is in 03:00 Local time in last Sunday of March ... # EETDST -> EET is in 04:00 Local time in last Sunday of October # @@ -845,7 +848,7 @@ 1:00 C-Eur CE%sT 1945 1:00 - CET 1945 Apr 2 3:00 2:00 - EET 1979 Mar 31 23:00 - 2:00 Bulg EE%sT 1982 Sep 26 2:00 + 2:00 Bulg EE%sT 1982 Sep 26 3:00 2:00 C-Eur EE%sT 1991 2:00 E-Eur EE%sT 1997 2:00 EU EE%sT @@ -1062,8 +1065,8 @@ # after that. # From Mart Oruaas (2000-01-29): -# Regulation no. 301 (1999-10-12) obsoletes previous regulation -# no. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all +# Regulation No. 301 (1999-10-12) obsoletes previous regulation +# No. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all # the year round. The regulation is effective 1999-11-01. # From Toomas Soome (2002-02-21): @@ -1084,7 +1087,7 @@ 3:00 Russia MSK/MSD 1989 Mar 26 2:00s 2:00 1:00 EEST 1989 Sep 24 2:00s 2:00 C-Eur EE%sT 1998 Sep 22 - 2:00 EU EE%sT 1999 Nov 1 + 2:00 EU EE%sT 1999 Oct 31 4:00 2:00 - EET 2002 Feb 21 2:00 EU EE%sT @@ -1407,35 +1410,32 @@ # might be a reference to the Julian calendar as opposed to Gregorian, or it # might mean something else (???). # -# From Paul Eggert (2006-03-22): -# The Iceland Almanak, Shanks & Pottenger, and Whitman disagree on many points. -# We go with the Almanak, except for one claim from Shanks & Pottenger, namely -# that Reykavik was 21W57 from 1837 to 1908, local mean time before that. +# From Paul Eggert (2014-11-22): +# The information below is taken from the 1988 Almanak; see +# http://www.almanak.hi.is/klukkan.html # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iceland 1917 1918 - Feb 19 23:00 1:00 S +Rule Iceland 1917 1919 - Feb 19 23:00 1:00 S Rule Iceland 1917 only - Oct 21 1:00 0 - -Rule Iceland 1918 only - Nov 16 1:00 0 - +Rule Iceland 1918 1919 - Nov 16 1:00 0 - +Rule Iceland 1921 only - Mar 19 23:00 1:00 S +Rule Iceland 1921 only - Jun 23 1:00 0 - Rule Iceland 1939 only - Apr 29 23:00 1:00 S -Rule Iceland 1939 only - Nov 29 2:00 0 - +Rule Iceland 1939 only - Oct 29 2:00 0 - Rule Iceland 1940 only - Feb 25 2:00 1:00 S -Rule Iceland 1940 only - Nov 3 2:00 0 - -Rule Iceland 1941 only - Mar 2 1:00s 1:00 S -Rule Iceland 1941 only - Nov 2 1:00s 0 - -Rule Iceland 1942 only - Mar 8 1:00s 1:00 S -Rule Iceland 1942 only - Oct 25 1:00s 0 - +Rule Iceland 1940 1941 - Nov Sun>=2 1:00s 0 - +Rule Iceland 1941 1942 - Mar Sun>=2 1:00s 1:00 S # 1943-1946 - first Sunday in March until first Sunday in winter Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 S -Rule Iceland 1943 1948 - Oct Sun>=22 1:00s 0 - +Rule Iceland 1942 1948 - Oct Sun>=22 1:00s 0 - # 1947-1967 - first Sunday in April until first Sunday in winter Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 S -# 1949 Oct transition delayed by 1 week +# 1949 and 1967 Oct transitions delayed by 1 week Rule Iceland 1949 only - Oct 30 1:00s 0 - Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 - Rule Iceland 1967 only - Oct 29 1:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Reykjavik -1:27:24 - LMT 1837 - -1:27:48 - RMT 1908 # Reykjavik Mean Time? +Zone Atlantic/Reykjavik -1:28 - LMT 1908 -1:00 Iceland IS%sT 1968 Apr 7 1:00s 0:00 - GMT @@ -1530,21 +1530,21 @@ # correct data in juridical acts and I found some juridical documents about # changes in the counting of time in Latvia from 1981.... # -# Act No.35 of the Council of Ministers of Latvian SSR of 1981-01-22 ... -# according to the Act No.925 of the Council of Ministers of USSR of 1980-10-24 +# Act No. 35 of the Council of Ministers of Latvian SSR of 1981-01-22 ... +# according to the Act No. 925 of the Council of Ministers of USSR of 1980-10-24 # ...: all year round the time of 2nd time zone + 1 hour, in addition turning # the hands of the clock 1 hour forward on 1 April at 00:00 (GMT 31 March 21:00) # and 1 hour backward on the 1 October at 00:00 (GMT 30 September 20:00). # -# Act No.592 of the Council of Ministers of Latvian SSR of 1984-09-24 ... -# according to the Act No.967 of the Council of Ministers of USSR of 1984-09-13 +# Act No. 592 of the Council of Ministers of Latvian SSR of 1984-09-24 ... +# according to the Act No. 967 of the Council of Ministers of USSR of 1984-09-13 # ...: all year round the time of 2nd time zone + 1 hour, in addition turning # the hands of the clock 1 hour forward on the last Sunday of March at 02:00 # (GMT 23:00 on the previous day) and 1 hour backward on the last Sunday of # September at 03:00 (GMT 23:00 on the previous day). # -# Act No.81 of the Council of Ministers of Latvian SSR of 1989-03-22 ... -# according to the Act No.227 of the Council of Ministers of USSR of 1989-03-14 +# Act No. 81 of the Council of Ministers of Latvian SSR of 1989-03-22 ... +# according to the Act No. 227 of the Council of Ministers of USSR of 1989-03-14 # ...: since the last Sunday of March 1989 in Lithuanian SSR, Latvian SSR, # Estonian SSR and Kaliningrad region of Russian Federation all year round the # time of 2nd time zone (Moscow time minus one hour). On the territory of Latvia @@ -1561,7 +1561,7 @@ # From Andrei Ivanov (2000-03-06): # This year Latvia will not switch to Daylight Savings Time (as specified in # The Regulations of the Cabinet of Ministers of the Rep. of Latvia of -# 29-Feb-2000 (#79) <http://www.lv-laiks.lv/wwwraksti/2000/071072/vd4.htm>, +# 29-Feb-2000 (No. 79) <http://www.lv-laiks.lv/wwwraksti/2000/071072/vd4.htm>, # in Latvian for subscribers only). # From RFE/RL Newsline @@ -1766,6 +1766,18 @@ # News from Moldova (in russian): # http://ru.publika.md/link_317061.html +# From Roman Tudos (2015-07-02): +# http://lex.justice.md/index.php?action=view&view=doc&lang=1&id=355077 +# From Paul Eggert (2015-07-01): +# The abovementioned official link to IGO1445-868/2014 states that +# 2014-10-26's fallback transition occurred at 03:00 local time. Also, +# http://www.trm.md/en/social/la-30-martie-vom-trece-la-ora-de-vara +# says the 2014-03-30 spring-forward transition was at 02:00 local time. +# Guess that since 1997 Moldova has switched one hour before the EU. + +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S +Rule Moldova 1997 max - Oct lastSun 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Chisinau 1:55:20 - LMT 1880 @@ -1780,7 +1792,7 @@ 2:00 Russia EE%sT 1992 2:00 E-Eur EE%sT 1997 # See Romania commentary for the guessed 1997 transition to EU rules. - 2:00 EU EE%sT + 2:00 Moldova EE%sT # Monaco # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's @@ -2126,7 +2138,7 @@ # Russia # From Alexander Krivenyshev (2011-09-15): -# Based on last Russian Government Decree # 725 on August 31, 2011 +# Based on last Russian Government Decree No. 725 on August 31, 2011 # (Government document # http://www.government.ru/gov/results/16355/print/ # in Russian) @@ -2136,7 +2148,7 @@ # http://www.worldtimezone.com/dst_news/dst_news_russia36.htm # From Sanjeev Gupta (2011-09-27): -# Scans of [Decree #23 of January 8, 1992] are available at: +# Scans of [Decree No. 23 of January 8, 1992] are available at: # http://government.consultant.ru/page.aspx?1223966 # They are in Cyrillic letters (presumably Russian). @@ -2147,19 +2159,19 @@ # One source is # http://government.ru/gov/results/16355/ # which, according to translate.google.com, begins "Decree of August 31, -# 2011 No 725" and contains no other dates or "effective date" information. +# 2011 No. 725" and contains no other dates or "effective date" information. # # Another source is # http://www.rg.ru/2011/09/06/chas-zona-dok.html # which, according to translate.google.com, begins "Resolution of the # Government of the Russian Federation on August 31, 2011 N 725" and also # contains "Date first official publication: September 6, 2011 Posted on: -# in the 'RG' - Federal Issue number 5573 September 6, 2011" but which +# in the 'RG' - Federal Issue No. 5573 September 6, 2011" but which # does not contain any "effective date" information. # # Another source is # http://en.wikipedia.org/wiki/Oymyakonsky_District#cite_note-RuTime-7 -# which, in note 8, contains "Resolution #725 of August 31, 2011... +# which, in note 8, contains "Resolution No. 725 of August 31, 2011... # Effective as of after 7 days following the day of the official publication" # but which does not contain any reference to September 6, 2011. # @@ -2367,7 +2379,7 @@ # changed in May. 2:00 E-Eur EE%sT 1994 May # From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev. - 3:00 E-Eur MSK/MSD 1996 Mar 31 3:00s + 3:00 E-Eur MSK/MSD 1996 Mar 31 0:00s 3:00 1:00 MSD 1996 Oct 27 3:00s # IATA SSIM (1997-09) says Crimea switched to EET/EEST. # Assume it happened in March by not changing the clocks. @@ -2403,7 +2415,7 @@ 4:00 Russia VOL%sT 1989 Mar 26 2:00s # Volgograd T 3:00 Russia VOL%sT 1991 Mar 31 2:00s 4:00 - VOLT 1992 Mar 29 2:00s - 3:00 Russia MSK 2011 Mar 27 2:00s + 3:00 Russia MSK/MSD 2011 Mar 27 2:00s 4:00 - MSK 2014 Oct 26 2:00s 3:00 - MSK @@ -2502,7 +2514,7 @@ # from current Russia Zone 6 - Krasnoyarsk Time Zone (KRA) UTC +0700 # to Russia Zone 5 - Novosibirsk Time Zone (NOV) UTC +0600 # -# This is according to Government of Russia decree # 740, on September +# This is according to Government of Russia decree No. 740, on September # 14, 2009 "Application in the territory of the Kemerovo region the Fifth # time zone." ("Russia Zone 5" or old "USSR Zone 5" is GMT +0600) # @@ -2925,7 +2937,7 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. -1:00 - CANT 1946 Sep 30 1:00 # Canaries T 0:00 - WET 1980 Apr 6 0:00s - 0:00 1:00 WEST 1980 Sep 28 0:00s + 0:00 1:00 WEST 1980 Sep 28 1:00u 0:00 EU WE%sT # IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u. # Ignore this for now, as the Canaries are part of the EU. @@ -3215,7 +3227,7 @@ # From Igor Karpov, who works for the Ukrainian Ministry of Justice, # via Garrett Wollman (2003-01-27): # BTW, I've found the official document on this matter. It's government -# regulations number 509, May 13, 1996. In my poor translation it says: +# regulations No. 509, May 13, 1996. In my poor translation it says: # "Time in Ukraine is set to second timezone (Kiev time). Each last Sunday # of March at 3am the time is changing to 4am and each last Sunday of # October the time at 4am is changing to 3am" @@ -3224,7 +3236,7 @@ # On September 20, 2011 the deputies of the Verkhovna Rada agreed to # abolish the transfer clock to winter time. # -# Bill number 8330 of MP from the Party of Regions Oleg Nadoshi got +# Bill No. 8330 of MP from the Party of Regions Oleg Nadoshi got # approval from 266 deputies. # # Ukraine abolishes transfer back to the winter time (in Russian) diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/northamerica libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/northamerica --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/northamerica 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/northamerica 2015-08-11 08:57:35.000000000 -0300 @@ -124,7 +124,7 @@ Rule US 1918 1919 - Oct lastSun 2:00 0 S Rule US 1942 only - Feb 9 2:00 1:00 W # War Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace -Rule US 1945 only - Sep 30 2:00 0 S +Rule US 1945 only - Sep lastSun 2:00 0 S Rule US 1967 2006 - Oct lastSun 2:00 0 S Rule US 1967 1973 - Apr lastSun 2:00 1:00 D Rule US 1974 only - Jan 6 2:00 1:00 D @@ -227,9 +227,14 @@ # The law doesn't give abbreviations. # # From Paul Eggert (2000-01-08), following a heads-up from Rives McDow: -# Public law 106-564 (2000-12-23) introduced the abbreviation -# "Chamorro Standard Time" for time in Guam and the Northern Marianas. -# See the file "australasia". +# Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time" +# for time in Guam and the Northern Marianas. See the file "australasia". +# +# From Paul Eggert (2015-04-17): +# HST and HDT are standardized abbreviations for Hawaii-Aleutian +# standard and daylight times. See section 9.47 (p 234) of the +# U.S. Government Printing Office Style Manual (2008) +# http://www.gpo.gov/fdsys/pkg/GPO-STYLEMANUAL-2008/pdf/GPO-STYLEMANUAL-2008.pdf # From Arthur David Olson, 2005-08-09 # The following was signed into law on 2005-08-08. @@ -536,7 +541,7 @@ -11:00 - BST 1969 -11:00 US B%sT 1983 Oct 30 2:00 -10:00 US AH%sT 1983 Nov 30 - -10:00 US HA%sT + -10:00 US H%sT # The following switches don't quite make our 1970 cutoff. # # Shanks writes that part of southwest Alaska (e.g. Aniak) @@ -1230,10 +1235,19 @@ # west Labrador, Nova Scotia, Prince Edward I -# From Paul Eggert (2006-03-22): +# From Brian Inglis (2015-07-20): +# From the historical weather station records available at: +# https://weatherspark.com/history/28351/1971/Sydney-Nova-Scotia-Canada +# Sydney shares the same time history as Glace Bay, so was +# likely to be the same across the island.... +# Sydney, as the capital and most populous location, or Cape Breton, would +# have been better names for the zone had we known this in 1996. + +# From Paul Eggert (2015-07-20): # Shanks & Pottenger write that since 1970 most of this region has been like # Halifax. Many locales did not observe peacetime DST until 1972; -# Glace Bay, NS is the largest that we know of. +# the Cape Breton area, represented by Glace Bay, is the largest we know of +# (Glace Bay was perhaps not the best name choice but no point changing now). # Shanks & Pottenger also write that Liverpool, NS was the only town # in Canada to observe DST in 1971 but not 1970; for now we'll assume # this is a typo. @@ -1331,14 +1345,9 @@ # Quebec -# From Paul Eggert (2013-08-30): -# Since 1970 most of Quebec has been like Toronto. -# However, because earlier versions of the tz database mistakenly relied on data -# from Shanks & Pottenger saying that Quebec differed from Ontario after 1970, -# a separate entry was created for most of Quebec. We're loath to lose -# its pre-1970 info, even though the tz database is normally limited to -# zones that differ after 1970, so keep this otherwise out-of-scope entry. - +# From Paul Eggert (2015-03-24): +# See America/Toronto for most of Quebec, including Montreal. +# # Matthews and Vincent (1998) also write that Quebec east of the -63 # meridian is supposed to observe AST, but residents as far east as # Natashquan use EST/EDT, and residents east of Natashquan use AST. @@ -1352,39 +1361,10 @@ # For lack of better info, guess this practice began around 1970, contra to # Shanks & Pottenger who have this region observing AST/ADT. -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mont 1917 only - Mar 25 2:00 1:00 D -Rule Mont 1917 only - Apr 24 0:00 0 S -Rule Mont 1919 only - Mar 31 2:30 1:00 D -Rule Mont 1919 only - Oct 25 2:30 0 S -Rule Mont 1920 only - May 2 2:30 1:00 D -Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S -Rule Mont 1921 only - May 1 2:00 1:00 D -Rule Mont 1922 only - Apr 30 2:00 1:00 D -Rule Mont 1924 only - May 17 2:00 1:00 D -Rule Mont 1924 1926 - Sep lastSun 2:30 0 S -Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D -Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D -Rule Mont 1927 1937 - Sep lastSat 24:00 0 S -Rule Mont 1938 1940 - Apr lastSun 0:00 1:00 D -Rule Mont 1938 1939 - Sep lastSun 0:00 0 S -Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D -Rule Mont 1945 1948 - Sep lastSun 2:00 0 S -Rule Mont 1949 1950 - Oct lastSun 2:00 0 S -Rule Mont 1951 1956 - Sep lastSun 2:00 0 S -Rule Mont 1957 1973 - Oct lastSun 2:00 0 S - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Blanc-Sablon -3:48:28 - LMT 1884 -4:00 Canada A%sT 1970 -4:00 - AST -Zone America/Montreal -4:54:16 - LMT 1884 - -5:00 Mont E%sT 1918 - -5:00 Canada E%sT 1919 - -5:00 Mont E%sT 1942 Feb 9 2:00s - -5:00 Canada E%sT 1946 - -5:00 Mont E%sT 1974 - -5:00 Canada E%sT # Ontario @@ -1825,13 +1805,13 @@ # Exact date in October unknown; Sunday October 1 is a reasonable guess. # 3. June 1918: switch to Pacific Daylight Time (GMT-7) # Exact date in June unknown; Sunday June 2 is a reasonable guess. -# note#1: +# note 1: # On Oct 27/1918 when daylight saving ended in the rest of Canada, # Creston did not change its clocks. -# note#2: +# note 2: # During WWII when the Federal Government legislated a mandatory clock change, # Creston did not oblige. -# note#3: +# note 3: # There is no guarantee that Creston will remain on Mountain Standard Time # (UTC-7) forever. # The subject was debated at least once this year by the town Council. @@ -1875,17 +1855,115 @@ # Dawson switched to PST in 1973. Inuvik switched to MST in 1979. # Mathew Englander (1996-10-07) gives the following refs: # * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68, -# c. 7 defines Yukon standard time as UTC-9. This is still valid; +# c. 7 defines Yukon standard time as UTC-9.... # see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1). +# [http://canlii.ca/t/7vhg] # * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00. # * O.I.C. 1980/02 established DST. # * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00. -# Shanks & Pottenger say Yukon's 1973-10-28 switch was at 2:00; go -# with Englander. -# From Chris Walton (2006-06-26): -# Here is a link to the old daylight saving portion of the interpretation -# act which was last updated in 1987: -# http://www.gov.yk.ca/legislation/regs/oic1987_056.pdf + +# From Brian Inglis (2015-04-14): +# +# I tried to trace the history of Yukon time and found the following +# regulations, giving the reference title and URL if found, regulation name, +# and relevant quote if available. Each regulation specifically revokes its +# predecessor. The final reference is to the current Interpretation Act +# authorizing and resulting from these regulatory changes. +# +# Only recent regulations were retrievable via Yukon government site search or +# index, and only some via Canadian legal sources. Other sources used include +# articles titled "Standard Time and Time Zones in Canada" from JRASC via ADS +# Abstracts, cited by ADO for 1932 ..., and updated versions from 1958 and +# 1970 quoted below; each article includes current extracts from provincial +# and territorial ST and DST regulations at the end, summaries and details of +# standard times and daylight saving time at many locations across Canada, +# with time zone maps, tables and calculations for Canadian Sunrise, Sunset, +# and LMST; they also cover many countries and global locations, with a chart +# and table showing current Universal Time offsets, and may be useful as +# another source of information for 1970 and earlier. +# +# * Standard Time and Time Zones in Canada; Smith, C.C.; JRASC, Vol. 26, +# pp.49-77; February 1932; SAO/NASA Astrophysics Data System (ADS) +# http://adsabs.harvard.edu/abs/1932JRASC..26...49S from p.75: +# Yukon Interpretation Ordinance +# Yukon standard time is the local mean time at the one hundred and +# thirty-fifth meridian. +# +# * Standard Time and Time Zones in Canada; Smith, C.C.; Thomson, Malcolm M.; +# JRASC, Vol. 52, pp.193-223; October 1958; SAO/NASA Astrophysics Data System +# (ADS) http://adsabs.harvard.edu/abs/1958JRASC..52..193S from pp.220-1: +# Yukon Interpretation Ordinance, 1955, Chap. 16. +# +# (1) Subject to this section, standard time shall be reckoned as nine +# hours behind Greenwich Time and called Yukon Standard Time. +# +# (2) Notwithstanding subsection (1), the Commissioner may make regulations +# varying the manner of reckoning standard time. +# +# * Yukon Territory Commissioner's Order 1966-20 Interpretation Ordinance +# http://? - no online source found +# +# * Standard Time and Time Zones in Canada; Thomson, Malcolm M.; JRASC, +# Vol. 64, pp.129-162; June 1970; SAO/NASA Astrophysics Data System (ADS) +# http://adsabs.harvard.edu/abs/1970JRASC..64..129T from p.156: Yukon +# Territory Commissioner's Order 1967-59 Interpretation Ordinance ... +# +# 1. Commissioner's Order 1966-20 dated at Whitehorse in the Yukon +# Territory on 27th January, 1966, is hereby revoked. +# +# 2. Yukon (East) Standard Time as defined by section 36 of the +# Interpretation Ordinance from and after mid-night on the 28th day of May, +# 1967 shall be reckoned in the same manner as Pacific Standard Time, that +# is to say, eight hours behind Greenwich Time in the area of the Yukon +# Territory lying east of the 138th degree longitude west. +# +# 3. In the remainder of the Territory, lying west of the 138th degree +# longitude west, Yukon (West) Standard Time shall be reckoned as nine +# hours behind Greenwich Time. +# +# * Yukon Standard Time defined as Pacific Standard Time, YCO 1973/214 +# http://www.canlii.org/en/yk/laws/regu/yco-1973-214/latest/yco-1973-214.html +# C.O. 1973/214 INTERPRETATION ACT ... +# +# 1. Effective October 28, 1973 Commissioner's Order 1967/59 is hereby +# revoked. +# +# 2. Yukon Standard Time as defined by section 36 of the Interpretation +# Act from and after midnight on the twenty-eighth day of October, 1973 +# shall be reckoned in the same manner as Pacific Standard Time, that is +# to say eight hours behind Greenwich Time. +# +# * O.I.C. 1980/02 INTERPRETATION ACT +# http://? - no online source found +# +# * Yukon Daylight Saving Time, YOIC 1987/56 +# http://www.canlii.org/en/yk/laws/regu/yoic-1987-56/latest/yoic-1987-56.html +# O.I.C. 1987/056 INTERPRETATION ACT ... +# +# In every year between +# (a) two o'clock in the morning in the first Sunday in April, and +# (b) two o'clock in the morning in the last Sunday in October, +# Standard Time shall be reckoned as seven hours behind Greenwich Time and +# called Yukon Daylight Saving Time. +# ... +# Dated ... 9th day of March, A.D., 1987. +# +# * Yukon Daylight Saving Time 2006, YOIC 2006/127 +# http://www.canlii.org/en/yk/laws/regu/yoic-2006-127/latest/yoic-2006-127.html +# O.I.C. 2006/127 INTERPRETATION ACT ... +# +# 1. In Yukon each year the time for general purposes shall be 7 hours +# behind Greenwich mean time during the period commencing at two o'clock +# in the forenoon on the second Sunday of March and ending at two o'clock +# in the forenoon on the first Sunday of November and shall be called +# Yukon Daylight Saving Time. +# +# 2. Order-in-Council 1987/56 is revoked. +# +# 3. This order comes into force January 1, 2007. +# +# * Interpretation Act, RSY 2002, c 125 +# http://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html # From Rives McDow (1999-09-04): # Nunavut ... moved ... to incorporate the whole territory into one time zone. @@ -2111,7 +2189,7 @@ -7:00 NT_YK M%sT 1980 -7:00 Canada M%sT Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 - -9:00 NT_YK Y%sT 1966 Jul 1 2:00 + -9:00 NT_YK Y%sT 1967 May 28 0:00 -8:00 NT_YK P%sT 1980 -8:00 Canada P%sT Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 @@ -2124,11 +2202,11 @@ # Mexico -# From Paul Eggert (2001-03-05): +# From Paul Eggert (2014-12-07): # The Investigation and Analysis Service of the # Mexican Library of Congress (MLoC) has published a # history of Mexican local time (in Spanish) -# http://www.cddhcu.gob.mx/bibliot/publica/inveyana/polisoc/horver/ +# http://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm # # Here are the discrepancies between Shanks & Pottenger (S&P) and the MLoC. # (In all cases we go with the MLoC.) @@ -2297,6 +2375,40 @@ # efecto desde las dos horas del segundo domingo de marzo y concluir?? a # las dos horas del primer domingo de noviembre. +# From Steffen Thorsen (2014-12-08), translated by Gwillim Law: +# The Mexican state of Quintana Roo will likely change to EST in 2015. +# +# http://www.unioncancun.mx/articulo/2014/12/04/medio-ambiente/congreso-aprueba-una-hora-mas-de-sol-en-qroo +# "With this change, the time conflict that has existed between the municipios +# of Quintana Roo and the municipio of Felipe Carrillo Puerto may come to an +# end. The latter declared itself in rebellion 15 years ago when a time change +# was initiated in Mexico, and since then it has refused to change its time +# zone along with the rest of the country." +# +# From Steffen Thorsen (2015-01-14), translated by Gwillim Law: +# http://sipse.com/novedades/confirman-aplicacion-de-nueva-zona-horaria-para-quintana-roo-132331.html +# "...the new time zone will come into effect at two o'clock on the first Sunday +# of February, when we will have to advance the clock one hour from its current +# time..." +# Also, the new zone will not use DST. +# +# From Carlos Ra??l Perasso (2015-02-02): +# The decree that modifies the Mexican Hour System Law has finally +# been published at the Diario Oficial de la Federaci??n +# http://www.dof.gob.mx/nota_detalle.php?codigo=5380123&fecha=31/01/2015 +# It establishes 5 zones for Mexico: +# 1- Zona Centro (Central Zone): Corresponds to longitude 90 W, +# includes most of Mexico, excluding what's mentioned below. +# 2- Zona Pac??fico (Pacific Zone): Longitude 105 W, includes the +# states of Baja California Sur; Chihuahua; Nayarit (excluding Bah??a +# de Banderas which lies in Central Zone); Sinaloa and Sonora. +# 3- Zona Noroeste (Northwest Zone): Longitude 120 W, includes the +# state of Baja California. +# 4- Zona Sureste (Southeast Zone): Longitude 75 W, includes the state +# of Quintana Roo. +# 5- The islands, reefs and keys shall take their timezone from the +# longitude they are located at. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Mexico 1939 only - Feb 5 0:00 1:00 D Rule Mexico 1939 only - Jun 25 0:00 0 S @@ -2317,7 +2429,8 @@ Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56 -6:00 - CST 1981 Dec 23 -5:00 Mexico E%sT 1998 Aug 2 2:00 - -6:00 Mexico C%sT + -6:00 Mexico C%sT 2015 Feb 1 2:00 + -5:00 - EST # Campeche, Yucat??n; represented by M??rida Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32 -6:00 - CST 1981 Dec 23 @@ -2489,13 +2602,8 @@ ############################################################################### # Anguilla -# See America/Port_of_Spain. - # Antigua and Barbuda -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Antigua -4:07:12 - LMT 1912 Mar 2 - -5:00 - EST 1951 - -4:00 - AST +# See America/Port_of_Spain. # Bahamas # @@ -2562,10 +2670,17 @@ -4:00 US A%sT # Cayman Is -# Zone NAME GMTOFF RULES FORMAT [UNTIL] + +# From Paul Eggert (2015-05-15): +# The Cayman government has decided to introduce DST in 2016, the idea being +# to keep in sync with New York. The legislation hasn't passed but the change +# seems quite likely. See: Meade B. Cayman 27. +# http://www.cayman27.com.ky/2015/05/15/clock-ticks-toward-daylight-saving-time-in-cayman + Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown -5:07:11 - KMT 1912 Feb # Kingston Mean Time - -5:00 - EST + -5:00 - EST 2016 + -5:00 US E%sT # Costa Rica diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/Readme.txt libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/Readme.txt --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/Readme.txt 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/Readme.txt 2015-08-11 08:57:35.000000000 -0300 @@ -1,2 +1,2 @@ The data files in this directory were obtained from the public IANA time zone database, -http://www.iana.org/time-zones, version 2014j. +http://www.iana.org/time-zones, version 2015e. diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/southamerica libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/southamerica --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/src/southamerica 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/src/southamerica 2015-08-11 08:57:35.000000000 -0300 @@ -30,7 +30,7 @@ # I suggest the use of _Summer time_ instead of the more cumbersome # _daylight-saving time_. _Summer time_ seems to be in general use # in Europe and South America. -# --???E O Cutler, _New York Times_ (1937-02-14), quoted in +# -- E O Cutler, _New York Times_ (1937-02-14), quoted in # H L Mencken, _The American Language: Supplement I_ (1960), p 466 # # Earlier editions of these tables also used the North American style @@ -131,7 +131,7 @@ # Timezone Law (which never was effectively applied) will (would?) be # in effect.... The article is at # http://ar.clarin.com/diario/2001-06-06/e-01701.htm -# ... The Law itself is "Ley No 25155", sanctioned on 1999-08-25, enacted +# ... The Law itself is "Ley No. 25155", sanctioned on 1999-08-25, enacted # 1999-09-17, and published 1999-09-21. The official publication is at: # http://www.boletin.jus.gov.ar/BON/Primera/1999/09-Septiembre/21/PDF/BO21-09-99LEG.PDF # Regretfully, you have to subscribe (and pay) for the on-line version.... @@ -175,15 +175,11 @@ # http://www.worldtimezone.com/dst_news/dst_news_argentina03.html # http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish) -# From Rodrigo Severo (2008-10-06): -# Here is some info available at a Gentoo bug related to TZ on Argentina's DST: -# ... -# ------- Comment #1 from [jmdocile] 2008-10-06 16:28 0000 ------- -# Hi, there is a problem with timezone-data-2008e and maybe with -# timezone-data-2008f -# Argentinian law [Number] 25.155 is no longer valid. +# From Juan Manuel Docile in https://bugs.gentoo.org/240339 (2008-10-07) +# via Rodrigo Severo: +# Argentinian law No. 25.155 is no longer valid. # http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm -# The new one is law [Number] 26.350 +# The new one is law No. 26.350 # http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm # So there is no summer time in Argentina for now. @@ -771,7 +767,7 @@ # [ and in a second message (same day): ] # I found the decree. # -# DECRETO No- 7.584, DE 13 DE OUTUBRO DE 2011 +# DECRETO No. 7.584, DE 13 DE OUTUBRO DE 2011 # Link : # http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6 @@ -1098,6 +1094,60 @@ # Chile +# From Paul Eggert (2015-04-03): +# Shanks & Pottenger says America/Santiago introduced standard time in +# 1890 and rounds its UTC offset to 70W40; guess that in practice this +# was the same offset as in 1916-1919. It also says Pacific/Easter +# standardized on 109W22 in 1890; assume this didn't change the clocks. +# +# Dates for America/Santiago from 1910 to 2004 are primarily from +# the following source, cited by Oscar van Vlijmen (2006-10-08): +# [1] Chile Law +# http://www.webexhibits.org/daylightsaving/chile.html +# This contains a copy of a this official table: +# Cambios en la hora oficial de Chile desde 1900 (retrieved 2008-03-30) +# http://web.archive.org/web/20080330200901/http://www.horaoficial.cl/cambio.htm +# [1] needs several corrections, though. +# +# The first set of corrections is from: +# [2] History of the Official Time of Chile +# http://www.horaoficial.cl/ing/horaof_ing.html (retrieved 2012-03-06). See: +# http://web.archive.org/web/20120306042032/http://www.horaoficial.cl/ing/horaof_ing.html +# This is an English translation of: +# Historia de la hora oficial de Chile (retrieved 2012-10-24). See: +# http://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm +# A fancier Spanish version (requiring mouse-clicking) is at: +# http://www.horaoficial.cl/historia_hora.html +# Conflicts between [1] and [2] were resolved as follows: +# +# - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites +# Bolet??n No. 1, Aviso No. 1 (1910). Go with [2]. +# +# - [1] says SMT was -4:42:45, [2] says Chile's official time from +# 1916 to 1919 was -4:42:46.3, the meridian of Chile's National +# Astronomical Observatory (OAN), then located in what is now +# Quinta Normal in Santiago. Go with [2], rounding it to -4:42:46. +# +# - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites +# Bolet??n No. 22, Aviso No. 129/1918 (1918-08-23). Go with [2]. +# +# - [1] does not give times for transitions; assume they occur +# at midnight mainland time, the current common practice. However, +# go with [2]'s specification of 23:00 for the 1947-05-21 transition. +# +# Another correction to [1] is from Jesper N??rgaard Welen, who +# wrote (2006-10-08), "I think that there are some obvious mistakes in +# the suggested link from Oscar van Vlijmen,... for instance entry 66 +# says that GMT-4 ended 1990-09-12 while entry 67 only begins GMT-3 at +# 1990-09-15 (they should have been 1990-09-15 and 1990-09-16 +# respectively), but anyhow it clears up some doubts too." +# +# Data for Pacific/Easter from 1910 through 1967 come from Shanks & +# Pottenger. After that, for lack of better info assume +# Pacific/Easter is always two hours behind America/Santiago; +# this is known to work for DST transitions starting in 2008 and +# may well be true for earlier transitions. + # From Eduardo Krell (1995-10-19): # The law says to switch to DST at midnight [24:00] on the second SATURDAY # of October.... The law is the same for March and October. @@ -1110,78 +1160,35 @@ # Because of the same drought, the government decided to end DST later, # on April 3, (one-time change). -# From Oscar van Vlijmen (2006-10-08): -# http://www.horaoficial.cl/cambio.htm - -# From Jesper N??rgaard Welen (2006-10-08): -# I think that there are some obvious mistakes in the suggested link -# from Oscar van Vlijmen,... for instance entry 66 says that GMT-4 -# ended 1990-09-12 while entry 67 only begins GMT-3 at 1990-09-15 -# (they should have been 1990-09-15 and 1990-09-16 respectively), but -# anyhow it clears up some doubts too. - -# From Paul Eggert (2014-08-12): -# The following data entries for Chile and America/Santiago are from -# <http://www.horaoficial.cl/horaof.htm> (2006-09-20), transcribed by -# Jesper N??rgaard Welen. The data entries for Pacific/Easter are from Shanks -# & Pottenger, except with DST transitions after 1932 cloned from -# America/Santiago. The pre-1980 Pacific/Easter data entries are dubious, -# but we have no other source. - # From Germ??n Poo-Caama??o (2008-03-03): # Due to drought, Chile extends Daylight Time in three weeks. This # is one-time change (Saturday 3/29 at 24:00 for America/Santiago # and Saturday 3/29 at 22:00 for Pacific/Easter) # The Supreme Decree is located at # http://www.shoa.cl/servicios/supremo316.pdf -# and the instructions for 2008 are located in: -# http://www.horaoficial.cl/cambio.htm - +# # From Jos?? Miguel Garrido (2008-03-05): -# ... -# You could see the announces of the change on # http://www.shoa.cl/noticias/2008/04hora/hora.htm # From Angel Chiang (2010-03-04): # Subject: DST in Chile exceptionally extended to 3 April due to earthquake # http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098 -# (in Spanish, last paragraph). # -# This is breaking news. There should be more information available later. - # From Arthur David Olson (2010-03-06): # Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch. -# From Glenn Eychaner (2011-03-02): -# It appears that the Chilean government has decided to postpone the -# change from summer time to winter time again, by three weeks to April -# 2nd: -# http://www.emol.com/noticias/nacional/detalle/detallenoticias.asp?idnoticia=467651 -# -# This is not yet reflected in the official "cambio de hora" site, but -# probably will be soon: -# http://www.horaoficial.cl/cambio.htm - -# From Arthur David Olson (2011-03-02): -# The emol.com article mentions a water shortage as the cause of the -# postponement, which may mean that it's not a permanent change. - # From Glenn Eychaner (2011-03-28): -# The article: # http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E} -# # In English: # Chile's clocks will go back an hour this year on the 7th of May instead # of this Saturday. They will go forward again the 3rd Saturday in -# August, not in October as they have since 1968. This is a pilot plan -# which will be reevaluated in 2012. +# August, not in October as they have since 1968. # From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23): # As stated in the website of the Chilean Energy Ministry # http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html # The Chilean Government has decided to postpone the entrance into winter time -# (to leave DST) from March 11 2012 to April 28th 2012. The decision has not -# been yet formalized but it will within the next days. +# (to leave DST) from March 11 2012 to April 28th 2012.... # Quote from the website communication: # # 6. For the year 2012, the dates of entry into winter time will be as follows: @@ -1206,17 +1213,17 @@ # DST Start: first Saturday of September 2014 (Sun 07 Sep 2014 04:00 UTC) # http://www.diariooficial.interior.gob.cl//media/2014/02/19/do-20140219.pdf -# NOTE: ChileAQ rules for Antarctic bases are stored separately in the -# 'antarctica' file. +# From Eduardo Romero Urra (2015-03-03): +# Today has been published officially that Chile will use the DST time +# permanently until March 25 of 2017 +# http://www.diariooficial.interior.gob.cl/media/2015/03/03/1-large.jpg +# +# From Paul Eggert (2015-03-03): +# For now, assume that the extension will persist indefinitely. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Chile 1927 1932 - Sep 1 0:00 1:00 S +Rule Chile 1927 1931 - Sep 1 0:00 1:00 S Rule Chile 1928 1932 - Apr 1 0:00 0 - -Rule Chile 1942 only - Jun 1 4:00u 0 - -Rule Chile 1942 only - Aug 1 5:00u 1:00 S -Rule Chile 1946 only - Jul 15 4:00u 1:00 S -Rule Chile 1946 only - Sep 1 3:00u 0:00 - -Rule Chile 1947 only - Apr 1 4:00u 0 - Rule Chile 1968 only - Nov 3 4:00u 1:00 S Rule Chile 1969 only - Mar 30 3:00u 0 - Rule Chile 1969 only - Nov 23 4:00u 1:00 S @@ -1227,10 +1234,8 @@ Rule Chile 1973 only - Sep 30 4:00u 1:00 S Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S Rule Chile 1987 only - Apr 12 3:00u 0 - -Rule Chile 1988 1989 - Mar Sun>=9 3:00u 0 - -Rule Chile 1988 only - Oct Sun>=1 4:00u 1:00 S -Rule Chile 1989 only - Oct Sun>=9 4:00u 1:00 S -Rule Chile 1990 only - Mar 18 3:00u 0 - +Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 - +Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 S Rule Chile 1990 only - Sep 16 4:00u 1:00 S Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 - Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S @@ -1247,28 +1252,55 @@ Rule Chile 2010 only - Apr Sun>=1 3:00u 0 - Rule Chile 2011 only - May Sun>=2 3:00u 0 - Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 S -Rule Chile 2012 max - Apr Sun>=23 3:00u 0 - -Rule Chile 2012 max - Sep Sun>=2 4:00u 1:00 S +Rule Chile 2012 2015 - Apr Sun>=23 3:00u 0 - +Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S # IATA SSIM anomalies: (1992-02) says 1992-03-14; # (1996-09) says 1998-03-08. Ignore these. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Santiago -4:42:46 - LMT 1890 - -4:42:46 - SMT 1910 # Santiago Mean Time + -4:42:46 - SMT 1910 Jan 10 # Santiago Mean Time -5:00 - CLT 1916 Jul 1 # Chile Time - -4:42:46 - SMT 1918 Sep 1 # Santiago Mean Time - -4:00 - CLT 1919 Jul 1 # Chile Time - -4:42:46 - SMT 1927 Sep 1 # Santiago Mean Time - -5:00 Chile CL%sT 1947 May 22 # Chile Time - -4:00 Chile CL%sT -Zone Pacific/Easter -7:17:44 - LMT 1890 + -4:42:46 - SMT 1918 Sep 10 + -4:00 - CLT 1919 Jul 1 + -4:42:46 - SMT 1927 Sep 1 + -5:00 Chile CL%sT 1932 Sep 1 + -4:00 - CLT 1942 Jun 1 + -5:00 - CLT 1942 Aug 1 + -4:00 - CLT 1946 Jul 15 + -4:00 1:00 CLST 1946 Sep 1 # central Chile + -4:00 - CLT 1947 Apr 1 + -5:00 - CLT 1947 May 21 23:00 + -4:00 Chile CL%sT 2015 Apr 26 3:00u + -3:00 - CLT +Zone Pacific/Easter -7:17:28 - LMT 1890 -7:17:28 - EMT 1932 Sep # Easter Mean Time - -7:00 Chile EAS%sT 1982 Mar 13 21:00 # Easter Time - -6:00 Chile EAS%sT + -7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time + -6:00 Chile EAS%sT 2015 Apr 26 3:00u + -5:00 - EAST # # Salas y G??mez Island is uninhabited. # Other Chilean locations, including Juan Fern??ndez Is, Desventuradas Is, # and Antarctic bases, are like America/Santiago. +# Antarctic base using South American rules +# (See the file 'antarctica' for more.) +# +# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968) +# +# From Ethan Dicks (1996-10-06): +# It keeps the same time as Punta Arenas, Chile, because, just like us +# and the South Pole, that's the other end of their supply line.... +# I verified with someone who was there that since 1980, +# Palmer has followed Chile. Prior to that, before the Falklands War, +# Palmer used to be supplied from Argentina. +# +# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Zone Antarctica/Palmer 0 - zzz 1965 + -4:00 Arg AR%sT 1969 Oct 5 + -3:00 Arg AR%sT 1982 May + -4:00 Chile CL%sT 2015 Apr 26 3:00u + -3:00 - CLT + # Colombia # Milne gives 4:56:16.4 for Bogot?? time in 1899; round to nearest. He writes, @@ -1497,7 +1529,7 @@ # (1999-09) reports no date; go with above sources and Gerd Knops (2001-02-27). Rule Para 1998 2001 - Mar Sun>=1 0:00 0 - # From Rives McDow (2002-02-28): -# A decree was issued in Paraguay (no. 16350) on 2002-02-26 that changed the +# A decree was issued in Paraguay (No. 16350) on 2002-02-26 that changed the # dst method to be from the first Sunday in September to the first Sunday in # April. Rule Para 2002 2004 - Apr Sun>=1 0:00 0 - @@ -1596,6 +1628,7 @@ # These all agree with Trinidad and Tobago since 1970. Link America/Port_of_Spain America/Anguilla +Link America/Port_of_Spain America/Antigua Link America/Port_of_Spain America/Dominica Link America/Port_of_Spain America/Grenada Link America/Port_of_Spain America/Guadeloupe @@ -1676,8 +1709,19 @@ Rule Uruguay 2006 only - Mar 12 2:00 0 - # From Jesper N??rgaard Welen (2006-09-06): # http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF -Rule Uruguay 2006 max - Oct Sun>=1 2:00 1:00 S -Rule Uruguay 2007 max - Mar Sun>=8 2:00 0 - +# +# From Steffen Thorsen (2015-06-30): +# ... it looks like they will not be using DST the coming summer: +# http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787 +# http://www.republica.com.uy/este-ano-no-se-modificara-el-huso-horario-en-uruguay/523760/ +# From Paul Eggert (2015-06-30): +# Apparently restaurateurs complained that DST caused people to go to the beach +# instead of out to dinner. +# From Pablo Camargo (2015-07-13): +# http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf +# [dated 2015-06-29; repeals Decree 311/006 dated 2006-09-04] +Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 S +Rule Uruguay 2007 2015 - Mar Sun>=8 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Montevideo -3:44:44 - LMT 1898 Jun 28 -3:44:44 - MMT 1920 May 1 # Montevideo MT @@ -1686,6 +1730,10 @@ # Venezuela # +# From Paul Eggert (2015-07-28): +# For the 1965 transition see Gaceta Oficial No. 27.619 (1964-12-15), p 205.533 +# http://www.pgr.gob.ve/dmdocuments/1964/27619.pdf +# # From John Stainforth (2007-11-28): # ... the change for Venezuela originally expected for 2007-12-31 has # been brought forward to 2007-12-09. The official announcement was @@ -1697,6 +1745,6 @@ # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Caracas -4:27:44 - LMT 1890 -4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time? - -4:30 - VET 1965 # Venezuela Time + -4:30 - VET 1965 Jan 1 0:00 # Venezuela T. -4:00 - VET 2007 Dec 9 3:00 -4:30 - VET diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/ZoneInfoCompiler.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/ZoneInfoCompiler.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/ZoneInfoCompiler.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/ZoneInfoCompiler.java 2015-08-11 08:57:35.000000000 -0300 @@ -29,9 +29,9 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Map.Entry; import java.util.StringTokenizer; import java.util.TreeMap; -import java.util.Map.Entry; import org.joda.time.Chronology; import org.joda.time.DateTime; @@ -65,20 +65,6 @@ static Chronology cLenientISO; - static ThreadLocal<Boolean> cVerbose = new ThreadLocal<Boolean>() { - protected Boolean initialValue() { - return Boolean.FALSE; - } - }; - - /** - * Gets a flag indicating that verbose logging is required. - * @return true to log verbosely - */ - public static boolean verbose() { - return cVerbose.get(); - } - //----------------------------------------------------------------------- /** * Launches the ZoneInfoCompiler tool. @@ -132,7 +118,7 @@ sources[j] = inputDir == null ? new File(args[i]) : new File(inputDir, args[i]); } - cVerbose.set(verbose); + ZoneInfoLogger.set(verbose); ZoneInfoCompiler zic = new ZoneInfoCompiler(); zic.compile(outputDir, sources); } @@ -350,12 +336,16 @@ private List<Zone> iZones; // List String pairs to link. - private List<String> iLinks; + private List<String> iGoodLinks; + + // List String pairs to link. + private List<String> iBackLinks; public ZoneInfoCompiler() { iRuleSets = new HashMap<String, RuleSet>(); iZones = new ArrayList<Zone>(); - iLinks = new ArrayList<String>(); + iGoodLinks = new ArrayList<String>(); + iBackLinks = new ArrayList<String>(); } /** @@ -368,7 +358,7 @@ if (sources != null) { for (int i=0; i<sources.length; i++) { BufferedReader in = new BufferedReader(new FileReader(sources[i])); - parseDataFile(in); + parseDataFile(in, "backward".equals(sources[i].getName())); in.close(); } } @@ -385,60 +375,68 @@ } Map<String, DateTimeZone> map = new TreeMap<String, DateTimeZone>(); + Map<String, Zone> sourceMap = new TreeMap<String, Zone>(); System.out.println("Writing zoneinfo files"); - for (int i=0; i<iZones.size(); i++) { + // write out the standard entries + for (int i = 0; i < iZones.size(); i++) { Zone zone = iZones.get(i); DateTimeZoneBuilder builder = new DateTimeZoneBuilder(); zone.addToBuilder(builder, iRuleSets); - final DateTimeZone original = builder.toDateTimeZone(zone.iName, true); - DateTimeZone tz = original; + DateTimeZone tz = builder.toDateTimeZone(zone.iName, true); if (test(tz.getID(), tz)) { map.put(tz.getID(), tz); + sourceMap.put(tz.getID(), zone); if (outputDir != null) { - if (ZoneInfoCompiler.verbose()) { - System.out.println("Writing " + tz.getID()); - } - File file = new File(outputDir, tz.getID()); - if (!file.getParentFile().exists()) { - file.getParentFile().mkdirs(); - } - OutputStream out = new FileOutputStream(file); - try { - builder.writeTo(zone.iName, out); - } finally { - out.close(); - } + writeZone(outputDir, builder, tz); + } + } + } - // Test if it can be read back. - InputStream in = new FileInputStream(file); - DateTimeZone tz2 = DateTimeZoneBuilder.readFrom(in, tz.getID()); - in.close(); - - if (!original.equals(tz2)) { - System.out.println("*e* Error in " + tz.getID() + - ": Didn't read properly from file"); + // revive zones from "good" links + for (int i = 0; i < iGoodLinks.size(); i += 2) { + String baseId = iGoodLinks.get(i); + String alias = iGoodLinks.get(i + 1); + Zone sourceZone = sourceMap.get(baseId); + if (sourceZone == null) { + System.out.println("Cannot find source zone '" + baseId + "' to link alias '" + alias + "' to"); + } else { + DateTimeZoneBuilder builder = new DateTimeZoneBuilder(); + sourceZone.addToBuilder(builder, iRuleSets); + DateTimeZone revived = builder.toDateTimeZone(alias, true); + if (test(revived.getID(), revived)) { + map.put(revived.getID(), revived); + if (outputDir != null) { + writeZone(outputDir, builder, revived); } } + map.put(revived.getID(), revived); + if (ZoneInfoLogger.verbose()) { + System.out.println("Good link: " + alias + " -> " + baseId + " revived"); + } } } - for (int pass=0; pass<2; pass++) { - for (int i=0; i<iLinks.size(); i += 2) { - String id = iLinks.get(i); - String alias = iLinks.get(i + 1); + // store "back" links as aliases (where name is permanently mapped + for (int pass = 0; pass < 2; pass++) { + for (int i = 0; i < iBackLinks.size(); i += 2) { + String id = iBackLinks.get(i); + String alias = iBackLinks.get(i + 1); DateTimeZone tz = map.get(id); if (tz == null) { if (pass > 0) { - System.out.println("Cannot find time zone '" + id + - "' to link alias '" + alias + "' to"); + System.out.println("Cannot find time zone '" + id + "' to link alias '" + alias + "' to"); } } else { map.put(alias, tz); + if (ZoneInfoLogger.verbose()) { + System.out.println("Back link: " + alias + " -> " + tz.getID()); + } } } } + // write map that unites the time-zone data, pointing aliases and real zones at files if (outputDir != null) { System.out.println("Writing ZoneInfoMap"); File file = new File(outputDir, "ZoneInfoMap"); @@ -461,7 +459,33 @@ return map; } - public void parseDataFile(BufferedReader in) throws IOException { + private void writeZone(File outputDir, DateTimeZoneBuilder builder, DateTimeZone tz) throws IOException { + if (ZoneInfoLogger.verbose()) { + System.out.println("Writing " + tz.getID()); + } + File file = new File(outputDir, tz.getID()); + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + OutputStream out = new FileOutputStream(file); + try { + builder.writeTo(tz.getID(), out); + } finally { + out.close(); + } + + // Test if it can be read back. + InputStream in = new FileInputStream(file); + DateTimeZone tz2 = DateTimeZoneBuilder.readFrom(in, tz.getID()); + in.close(); + + if (!tz.equals(tz2)) { + System.out.println("*e* Error in " + tz.getID() + + ": Didn't read properly from file"); + } + } + + public void parseDataFile(BufferedReader in, boolean backward) throws IOException { Zone zone = null; String line; while ((line = in.readLine()) != null) { @@ -506,8 +530,18 @@ } else if (token.equalsIgnoreCase("Zone")) { zone = new Zone(st); } else if (token.equalsIgnoreCase("Link")) { - iLinks.add(st.nextToken()); - iLinks.add(st.nextToken()); + String real = st.nextToken(); + String alias = st.nextToken(); + // links in "backward" are deprecated names + // links in other files should be kept + // special case a few to try to repair terrible damage to tzdb + if (backward || alias.equals("US/Pacific-New") || alias.startsWith("Etc/") || alias.equals("GMT")) { + iBackLinks.add(real); + iBackLinks.add(alias); + } else { + iGoodLinks.add(real); + iGoodLinks.add(alias); + } } else { System.out.println("Unknown line: " + line); } diff -Nru libjoda-time-java-2.7/src/main/java/org/joda/time/tz/ZoneInfoLogger.java libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/ZoneInfoLogger.java --- libjoda-time-java-2.7/src/main/java/org/joda/time/tz/ZoneInfoLogger.java 1969-12-31 21:00:00.000000000 -0300 +++ libjoda-time-java-2.8.2/src/main/java/org/joda/time/tz/ZoneInfoLogger.java 2015-08-11 08:57:35.000000000 -0300 @@ -0,0 +1,41 @@ +/* + * Copyright 2001-2015 Stephen Colebourne + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.joda.time.tz; + +/** + * Logger for the compiler. + */ +public class ZoneInfoLogger { + + static ThreadLocal<Boolean> cVerbose = new ThreadLocal<Boolean>() { + protected Boolean initialValue() { + return Boolean.FALSE; + } + }; + + /** + * Gets a flag indicating that verbose logging is required. + * @return true to log verbosely + */ + public static boolean verbose() { + return cVerbose.get(); + } + + public static void set(boolean verbose) { + cVerbose.set(verbose); + } + +} diff -Nru libjoda-time-java-2.7/src/site/markdown/index.md libjoda-time-java-2.8.2/src/site/markdown/index.md --- libjoda-time-java-2.7/src/site/markdown/index.md 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/site/markdown/index.md 2015-08-11 08:57:35.000000000 -0300 @@ -125,21 +125,21 @@ ## <i></i> Releases -[Release 2.7](download.html) is the current latest release. +[Release 2.8.2](download.html) is the current latest release. This release is considered stable and worthy of the 2.x tag. -See the [upgrade notes](upgradeto270.html) for full details. +See the [upgrade notes](upgradeto282.html) for full details. Joda-Time requires Java SE 5 or later and has [no dependencies](dependencies.html). There is a *compile-time* dependency on [Joda-Convert](http://www.joda.org/joda-convert/), but this is not required at runtime thanks to the magic of annotations. -Available in [Maven Central](http://search.maven.org/#artifactdetails%7Cjoda-time%7Cjoda-time%7C2.7%7Cjar). +Available in [Maven Central](http://search.maven.org/#artifactdetails%7Cjoda-time%7Cjoda-time%7C2.8.2%7Cjar). ```xml <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> - <version>2.7</version> + <version>2.8.2</version> </dependency> ``` @@ -153,7 +153,7 @@ deprecated methods. See the [upgrade notes](upgradeto200.html) for full details when upgrading from 1.x including information on the corner cases that are not compatible. The ancient release [1.6.2](https://sourceforge.net/projects/joda-time/files/joda-time/1.6.2/) was -the last release to support Java SE 4 and the last v1.x release +the last release to support Java SE 4 and the last v1.x release. --- diff -Nru libjoda-time-java-2.7/src/site/xdoc/installation.xml libjoda-time-java-2.8.2/src/site/xdoc/installation.xml --- libjoda-time-java-2.7/src/site/xdoc/installation.xml 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/site/xdoc/installation.xml 2015-08-11 08:57:35.000000000 -0300 @@ -22,6 +22,9 @@ <p> The release notes for upgraders can be found here: <ul> +<li><a href="upgradeto282.html">Version 2.8.2</a> - upgrade from Version 2.8.1</li> +<li><a href="upgradeto281.html">Version 2.8.1</a> - upgrade from Version 2.8</li> +<li><a href="upgradeto280.html">Version 2.8</a> - upgrade from Version 2.7</li> <li><a href="upgradeto270.html">Version 2.7</a> - upgrade from Version 2.6</li> <li><a href="upgradeto260.html">Version 2.6</a> - upgrade from Version 2.5</li> <li><a href="upgradeto250.html">Version 2.5</a> - upgrade from Version 2.4</li> diff -Nru libjoda-time-java-2.7/src/site/xdoc/upgradeto280.xml libjoda-time-java-2.8.2/src/site/xdoc/upgradeto280.xml --- libjoda-time-java-2.7/src/site/xdoc/upgradeto280.xml 1969-12-31 21:00:00.000000000 -0300 +++ libjoda-time-java-2.8.2/src/site/xdoc/upgradeto280.xml 2015-08-11 08:57:35.000000000 -0300 @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<document> + <properties> + <title>Java date and time API - Upgrade from 2.7 to 2.8</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.7 to version 2.8. +<source> +Joda-Time version 2.8 +--------------------- + +Joda-Time is a date and time handling library that seeks to replace the JDK +Date and Calendar classes. + +This release contains enhancements, bug fixes and a time zone update. +The release runs on JDK 5 or later. + +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.7 +---------------------- +- Encode properties files using unicode escapes [#228] + The properties files are supposed to be loaded using ISO 8859-1 but Android seems to have issues with that. + Re-encode the files using unicode escapes to sidestep the issue. + +- Avoid ProGuard errors in Android jar [#246] + Separate logging from time-zone compilation + + +Compatibility with 2.7 +---------------------- +Build system - Yes + +Binary compatible - Yes + +Source compatible - Yes + +Serialization compatible - Yes + +Data compatible - Yes + - DateTimeZone data updated to version 2015d + - In the past year, the IANA time-zone database maintainer has changed unique time-zone data for many parts + of the world into shared "links". For example, in IANA 'Asia/Kuwait' now links to 'Asia/Riyadh'. + (I personally disagree with the IANA time-zone database maintainer's actions but my objections were ignored). + This was a problem for Joda-Time as we interpreted the concept of links (many years ago) as only being used + for backwards compatibility. Links are exposed in Joda-Time, because if you request a time-zone for a linked + identifier you get the target of the link back. As such, in recent versions of Joda-Time, it was not possible + to obtain a DateTimeZone with an appropriate identifier for many parts of the world, such as 'Asia/Kuwait'. + With this release, most links in the main IANA files are now restored to be real zones. + As a side effect of this, some identifiers that used to act as links are now real zones. + In summary, in the last Joda-Time release, requesting 'Asia/Kuwait' would have given back 'Asia/Riyadh', + but it now returns 'Asia/Kuwait' (where 'Asia/Kuwait' and 'Asia/Riyadh' have the same time-zone rules). + In most cases, this won't have any impact on your application. + Zones affected (now real zones rather than incorrect links): + * Africa/Bamako + * Africa/Banjul + * Africa/Conakry + * Africa/Dakar + * Africa/Freetown + * Africa/Lome + * Africa/Nouakchott + * Africa/Ouagadougou + * Africa/Sao_Tome + * Atlantic/St_Helena + * Africa/Addis_Ababa + * Africa/Asmara + * Africa/Dar_es_Salaam + * Africa/Djibouti + * Africa/Kampala + * Africa/Mogadishu + * Indian/Antananarivo + * Indian/Comoro + * Indian/Mayotte + * Africa/Blantyre + * Africa/Bujumbura + * Africa/Gaborone + * Africa/Harare + * Africa/Kigali + * Africa/Lubumbashi + * Africa/Lusaka + * Africa/Bangui + * Africa/Brazzaville + * Africa/Douala + * Africa/Kinshasa + * Africa/Libreville + * Africa/Luanda + * Africa/Malabo + * Africa/Niamey + * Africa/Porto-Novo + * Africa/Maseru + * Africa/Mbabane + * Africa/Juba + * Europe/Nicosia + * Asia/Bahrain + * Asia/Aden + * Asia/Kuwait + * Asia/Phnom_Penh + * Asia/Vientiane + * Asia/Muscat + * Antarctica/McMurdo + * Europe/Jersey + * Europe/Guernsey + * Europe/Isle_of_Man + * Europe/Mariehamn + * Europe/Busingen + * Europe/Vatican + * Europe/San_Marino + * Europe/Vaduz + * Arctic/Longyearbyen + * Europe/Ljubljana + * Europe/Podgorica + * Europe/Sarajevo + * Europe/Skopje + * Europe/Zagreb + * Europe/Bratislava + * Asia/Istanbul + * Pacific/Johnston + * America/Aruba + * America/Lower_Princes + * America/Kralendijk + * America/Anguilla + * America/Dominica + * America/Grenada + * America/Guadeloupe + * America/Marigot + * America/Montserrat + * America/St_Barthelemy + * America/St_Kitts + * America/St_Lucia + * America/St_Thomas + * America/St_Vincent + * America/Tortola + +The change made should mean that further damage by the IANA time-zone database maintainer +will be less noticeable. + +Semantic compatible - Yes + + +Deprecations since 2.7 +---------------------- + + +Bug fixes since 2.7 +------------------- +- Fix MonthDay.plusDays() [#227] + The algorithm was incorrect when adding enough days to cause the month to change twice. + +- Fix DateTime.withDate() DateTime.withTime() [#233] + The algorithm incorrectly changed the hour of day when certain DST dates were hit. + The new algorithm avoids an IllegalInstantException when moving to a DST gap. + +- Fix Period.parse() [#238] + Negative periods of a fraction of a second were not parsed correctly. + +- Format Etc/GMT time-zone using GMT data [#244] + This change will provide better text formats for pattern letter 'z'. + +- Fix Property.toInterval() [#262] + The conversion of a field property to an interval did not take the chronology into account. + Thus, dateTime.hourOfDay().toInterval() previously resulted in an interval in the default + chronology, rather than the chronology of the dateTime. + The chronology is now passed to the interval. + + +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> diff -Nru libjoda-time-java-2.7/src/site/xdoc/upgradeto281.xml libjoda-time-java-2.8.2/src/site/xdoc/upgradeto281.xml --- libjoda-time-java-2.7/src/site/xdoc/upgradeto281.xml 1969-12-31 21:00:00.000000000 -0300 +++ libjoda-time-java-2.8.2/src/site/xdoc/upgradeto281.xml 2015-08-11 08:57:35.000000000 -0300 @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<document> + <properties> + <title>Java date and time API - Upgrade from 2.8 to 2.8.1</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.8 to version 2.8.1. +<source> +Joda-Time version 2.8.1 +----------------------- + +Joda-Time is a date and time handling library that seeks to replace the JDK +Date and Calendar classes. + +This release contains enhancements, bug fixes and a time zone update. +The release runs on JDK 5 or later. + +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 ** + + +Changes in 2.8.1 +================ +- Fixed to handle JDK 8u60 [#288, #291] + Without this fix, formatting a time-zone will print "+00:00" instead of "GMT" for the GMT time-zone + +- DateTimeZone data updated to version 2015e + + +Changes in 2.8.0 +================ + +See http://www.joda.org/joda-time/upgradeto280.html + +</source> +</p> +</section> + +</body> +</document> diff -Nru libjoda-time-java-2.7/src/site/xdoc/upgradeto282.xml libjoda-time-java-2.8.2/src/site/xdoc/upgradeto282.xml --- libjoda-time-java-2.7/src/site/xdoc/upgradeto282.xml 1969-12-31 21:00:00.000000000 -0300 +++ libjoda-time-java-2.8.2/src/site/xdoc/upgradeto282.xml 2015-08-11 08:57:35.000000000 -0300 @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<document> + <properties> + <title>Java date and time API - Upgrade from 2.8.1 to 2.8.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.8.1 to version 2.8.2. +<source> +Joda-Time version 2.8.2 +----------------------- + +Joda-Time is a date and time handling library that seeks to replace the JDK +Date and Calendar classes. + +This release contains enhancements, bug fixes and a time zone update. +The release runs on JDK 5 or later. + +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. + +** Please also check out our related projects ** +** http://www.joda.org/joda-time/related.html ** + + +Changes in 2.8.2 +================ +- DateTimeZone data updated to version 2015f + + + +Changes in 2.8.1 +================ +See http://www.joda.org/joda-time/upgradeto281.html + + +Changes in 2.8.0 +================ + +See http://www.joda.org/joda-time/upgradeto280.html + +</source> +</p> +</section> + +</body> +</document> diff -Nru libjoda-time-java-2.7/src/test/java/org/joda/time/format/TestPeriodFormatParsing.java libjoda-time-java-2.8.2/src/test/java/org/joda/time/format/TestPeriodFormatParsing.java --- libjoda-time-java-2.7/src/test/java/org/joda/time/format/TestPeriodFormatParsing.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/test/java/org/joda/time/format/TestPeriodFormatParsing.java 2015-08-11 08:57:35.000000000 -0300 @@ -95,6 +95,22 @@ assertEquals(new Period(6, 3, 0, 2, 0, 0, 0, 0), p); } + public void testParseNegativeMillis1() { + Period period = new Period(0, 0, 0, -1); + String formatted = period.toString(); + assertEquals("PT-0.001S", formatted); + Period parsed = Period.parse(formatted); + assertEquals(period, parsed); + } + + public void testParseNegativeMillis2() { + Period period = new Period(0, 0, 0, -999); + String formatted = period.toString(); + assertEquals("PT-0.999S", formatted); + Period parsed = Period.parse(formatted); + assertEquals(period, parsed); + } + public void testParseCustom1() { PeriodFormatter formatter = new PeriodFormatterBuilder() .printZeroAlways() diff -Nru libjoda-time-java-2.7/src/test/java/org/joda/time/TestDateTime_Basics.java libjoda-time-java-2.8.2/src/test/java/org/joda/time/TestDateTime_Basics.java --- libjoda-time-java-2.7/src/test/java/org/joda/time/TestDateTime_Basics.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/test/java/org/joda/time/TestDateTime_Basics.java 2015-08-11 08:57:35.000000000 -0300 @@ -839,6 +839,30 @@ } catch (IllegalArgumentException ex) {} } + public void testWithDate_int_int_int_toDST1() { + // 2010-03-28T02:55 is DST time, need to change to 03:55 + DateTime test = new DateTime(2015, 1, 10, 2, 55, 0, 0, ISO_PARIS); + DateTime result = test.withDate(2010, 3, 28); + DateTime expected = new DateTime(2010, 3, 28, 3, 55, 0, 0, ISO_PARIS); + assertEquals(expected, result); + } + + public void testWithDate_int_int_int_toDST2() { + // 2010-03-28T02:55 is DST time, need to change to 03:55 + DateTime test = new DateTime(2015, 1, 28, 2, 55, 0, 0, ISO_PARIS); + DateTime result = test.withDate(2010, 3, 28); + DateTime expected = new DateTime(2010, 3, 28, 3, 55, 0, 0, ISO_PARIS); + assertEquals(expected, result); + } + + public void testWithDate_int_int_int_affectedByDST() { + // 2010-03-28T02:55 is DST time, need to avoid time being changed to 03:55 + DateTime test = new DateTime(2015, 1, 28, 2, 55, 0, 0, ISO_PARIS); + DateTime result = test.withDate(2010, 3, 10); + DateTime expected = new DateTime(2010, 3, 10, 2, 55, 0, 0, ISO_PARIS); + assertEquals(expected, result); + } + public void testWithDate_LocalDate() { DateTime test = new DateTime(2002, 4, 5, 1, 2, 3, 4, ISO_UTC); DateTime result = test.withDate(new LocalDate(2003, 5, 6)); @@ -852,6 +876,7 @@ } catch (IllegalArgumentException ex) {} } + //----------------------------------------------------------------------- public void testWithTime_int_int_int_int() { DateTime test = new DateTime(TEST_TIME1 - 12345L, BUDDHIST_UTC); DateTime result = test.withTime(12, 24, 0, 0); @@ -865,6 +890,14 @@ } catch (IllegalArgumentException ex) {} } + public void testWithTime_int_int_int_int_toDST() { + // 2010-03-28T02:55 is DST time, need to change to 03:55 + DateTime test = new DateTime(2010, 3, 28, 0, 0, 0, 0, ISO_PARIS); + DateTime result = test.withTime(2, 55, 0, 0); + DateTime expected = new DateTime(2010, 3, 28, 3, 55, 0, 0, ISO_PARIS); + assertEquals(expected, result); + } + public void testWithTime_LocalTime() { DateTime test = new DateTime(TEST_TIME1 - 12345L, BUDDHIST_UTC); DateTime result = test.withTime(new LocalTime(12, 24, 0, 0)); diff -Nru libjoda-time-java-2.7/src/test/java/org/joda/time/TestDateTime_Properties.java libjoda-time-java-2.8.2/src/test/java/org/joda/time/TestDateTime_Properties.java --- libjoda-time-java-2.7/src/test/java/org/joda/time/TestDateTime_Properties.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/test/java/org/joda/time/TestDateTime_Properties.java 2015-08-11 08:57:35.000000000 -0300 @@ -1343,10 +1343,10 @@ assertEquals(new DateTime(2004, 6, 9, 13, 0, 0, 0), testInterval.getStart()); assertEquals(new DateTime(2004, 6, 9, 14, 0, 0, 0), testInterval.getEnd()); - DateTime midnightTest = new DateTime(2004, 6, 9, 23, 23, 43, 53); + DateTime midnightTest = new DateTime(2004, 6, 9, 23, 23, 43, 53, COPTIC_PARIS); Interval midnightTestInterval = midnightTest.hourOfDay().toInterval(); - assertEquals(new DateTime(2004, 6, 9, 23, 0, 0, 0), midnightTestInterval.getStart()); - assertEquals(new DateTime(2004, 6, 10, 0, 0, 0, 0), midnightTestInterval.getEnd()); + assertEquals(new DateTime(2004, 6, 9, 23, 0, 0, 0, COPTIC_PARIS), midnightTestInterval.getStart()); + assertEquals(new DateTime(2004, 6, 10, 0, 0, 0, 0, COPTIC_PARIS), midnightTestInterval.getEnd()); } public void testPropertyToIntervalMinuteOfHour() { diff -Nru libjoda-time-java-2.7/src/test/java/org/joda/time/TestMonthDay_Basics.java libjoda-time-java-2.8.2/src/test/java/org/joda/time/TestMonthDay_Basics.java --- libjoda-time-java-2.7/src/test/java/org/joda/time/TestMonthDay_Basics.java 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/src/test/java/org/joda/time/TestMonthDay_Basics.java 2015-08-11 08:57:35.000000000 -0300 @@ -504,6 +504,48 @@ assertEquals(expected, result); } + public void testPlusDays_int_wrapMonth() { + MonthDay test = new MonthDay(11, 1, ISOChronology.getInstanceUTC()); + MonthDay result = test.plusDays(31); + MonthDay expected = new MonthDay(12, 2, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testPlusDays_int_wrapMonthTwice() { + MonthDay test = new MonthDay(10, 31, ISOChronology.getInstanceUTC()); + MonthDay result = test.plusDays(32); + MonthDay expected = new MonthDay(12, 2, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testPlusDays_int_wrapMonthIntoNextYear() { + MonthDay test = new MonthDay(12, 1, ISOChronology.getInstanceUTC()); + MonthDay result = test.plusDays(31); + MonthDay expected = new MonthDay(1, 1, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testPlusDays_int_wrapMonthTwiceIntoNextYear() { + MonthDay test = new MonthDay(11, 30, ISOChronology.getInstanceUTC()); + MonthDay result = test.plusDays(32); + MonthDay expected = new MonthDay(1, 1, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testPlusDays_int_wrap50() { + MonthDay test = new MonthDay(5, 15, ISOChronology.getInstanceUTC()); + MonthDay result = test.plusDays(50); + MonthDay expected = new MonthDay(7, 4, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testPlusDays_int_toLeap() { + MonthDay test = new MonthDay(2, 28, ISOChronology.getInstanceUTC()); + MonthDay result = test.plusDays(1); + MonthDay expected = new MonthDay(2, 29, ISOChronology.getInstance()); + assertEquals(expected, result); + } + public void testPlusDays_int_fromLeap() { MonthDay test = new MonthDay(2, 29, ISOChronology.getInstanceUTC()); MonthDay result = test.plusDays(1); @@ -598,6 +640,41 @@ assertEquals(expected, result); } + public void testMinusDays_int_wrapMonth() { + MonthDay test = new MonthDay(12, 1, ISOChronology.getInstanceUTC()); + MonthDay result = test.minusDays(30); + MonthDay expected = new MonthDay(11, 1, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testMinusDays_int_wrapMonthTwice() { + MonthDay test = new MonthDay(12, 1, ISOChronology.getInstanceUTC()); + MonthDay result = test.minusDays(31); + MonthDay expected = new MonthDay(10, 31, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testMinusDays_int_wrapMonthIntoLastYear() { + MonthDay test = new MonthDay(1, 1, ISOChronology.getInstanceUTC()); + MonthDay result = test.minusDays(31); + MonthDay expected = new MonthDay(12, 1, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testMinusDays_int_wrapMonthTwiceIntoLastYear() { + MonthDay test = new MonthDay(1, 1, ISOChronology.getInstanceUTC()); + MonthDay result = test.minusDays(32); + MonthDay expected = new MonthDay(11, 30, ISOChronology.getInstanceUTC()); + assertEquals(expected, result); + } + + public void testMinusDays_int_toLeap() { + MonthDay test = new MonthDay(3, 1, ISOChronology.getInstanceUTC()); + MonthDay result = test.minusDays(1); + MonthDay expected = new MonthDay(2, 29, ISOChronology.getInstance()); + assertEquals(expected, result); + } + public void testMinusDays_int_fromLeap() { MonthDay test = new MonthDay(2, 29, ISOChronology.getInstanceUTC()); MonthDay result = test.minusDays(1); diff -Nru libjoda-time-java-2.7/.travis.yml libjoda-time-java-2.8.2/.travis.yml --- libjoda-time-java-2.7/.travis.yml 2015-01-11 22:20:35.000000000 -0200 +++ libjoda-time-java-2.8.2/.travis.yml 2015-08-11 08:57:35.000000000 -0300 @@ -1,5 +1,5 @@ # This file enables the Travis continuous integration system, which -# automatically builds and tests joda-money for each GitHub commit or +# automatically builds and tests joda-time for each GitHub commit or # pull request on three separate JDKs. # # For more information, see https://travis-ci.org