FULL PRODUCT VERSION :
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.3.9600]
A DESCRIPTION OF THE PROBLEM :
//parsing the date time string on a daylight saving boundary
ZonedDateTime dt = ZonedDateTime.parse("2015-10-25T02:00:00+01:00[Europe/Berlin]");
System.out.println(dt);
// result in 2015-10-25T02:00+02:00[Europe/Berlin]
// but ist must be 2015-10-25T02:00+01:00[Europe/Berlin]
parsing the string '2015-10-25T01:00:00+02:00[Europe/Berlin]' will result a correct value
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
see description
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
2015-10-25T02:00+01:00[Europe/Berlin]
ACTUAL -
2015-10-25T02:00+02:00[Europe/Berlin]
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
@Test
public void test()
{
ZonedDateTime dt = ZonedDateTime.parse("2015-10-25T01:00:00+02:00[Europe/Berlin]");
dt = dt.plusMinutes(120);
ZonedDateTime dt2 = ZonedDateTime.parse(dt.format(DateTimeFormatter.ISO_DATE_TIME),
DateTimeFormatter.ISO_DATE_TIME);
System.out.println("1: " + dt.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt.toEpochSecond());
System.out.println("2: " + dt2.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt2.toEpochSecond());
System.out.println();
dt = dt.plusMinutes(30);
dt2 = ZonedDateTime.parse(dt.format(DateTimeFormatter.ISO_DATE_TIME), DateTimeFormatter.ISO_DATE_TIME);
System.out.println("1: " + dt.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt.toEpochSecond());
System.out.println("2: " + dt2.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt2.toEpochSecond());
System.out.println();
dt = dt.plusMinutes(30);
dt2 = ZonedDateTime.parse(dt.format(DateTimeFormatter.ISO_DATE_TIME), DateTimeFormatter.ISO_DATE_TIME);
System.out.println("1: " + dt.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt.toEpochSecond());
System.out.println("2: " + dt2.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt2.toEpochSecond());
System.out.println();
}
---------- END SOURCE ----------
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.3.9600]
A DESCRIPTION OF THE PROBLEM :
//parsing the date time string on a daylight saving boundary
ZonedDateTime dt = ZonedDateTime.parse("2015-10-25T02:00:00+01:00[Europe/Berlin]");
System.out.println(dt);
// result in 2015-10-25T02:00+02:00[Europe/Berlin]
// but ist must be 2015-10-25T02:00+01:00[Europe/Berlin]
parsing the string '2015-10-25T01:00:00+02:00[Europe/Berlin]' will result a correct value
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
see description
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
2015-10-25T02:00+01:00[Europe/Berlin]
ACTUAL -
2015-10-25T02:00+02:00[Europe/Berlin]
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
@Test
public void test()
{
ZonedDateTime dt = ZonedDateTime.parse("2015-10-25T01:00:00+02:00[Europe/Berlin]");
dt = dt.plusMinutes(120);
ZonedDateTime dt2 = ZonedDateTime.parse(dt.format(DateTimeFormatter.ISO_DATE_TIME),
DateTimeFormatter.ISO_DATE_TIME);
System.out.println("1: " + dt.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt.toEpochSecond());
System.out.println("2: " + dt2.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt2.toEpochSecond());
System.out.println();
dt = dt.plusMinutes(30);
dt2 = ZonedDateTime.parse(dt.format(DateTimeFormatter.ISO_DATE_TIME), DateTimeFormatter.ISO_DATE_TIME);
System.out.println("1: " + dt.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt.toEpochSecond());
System.out.println("2: " + dt2.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt2.toEpochSecond());
System.out.println();
dt = dt.plusMinutes(30);
dt2 = ZonedDateTime.parse(dt.format(DateTimeFormatter.ISO_DATE_TIME), DateTimeFormatter.ISO_DATE_TIME);
System.out.println("1: " + dt.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt.toEpochSecond());
System.out.println("2: " + dt2.format(DateTimeFormatter.ISO_DATE_TIME) + " " + dt2.toEpochSecond());
System.out.println();
}
---------- END SOURCE ----------
- relates to
-
JDK-8066982 ZonedDateTime.parse() returns wrong ZoneOffset around DST fall transition
-
- Resolved
-