@@ -522,6 +522,36 @@ public void testDefaultOffsets() {
522522 OffsetDateTime .of (2100 , 2 , 28 , 20 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
523523 }
524524
525+ @ Test
526+ public void testDefaultOffsetsWithZoneParsed () {
527+ assertEquals (
528+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S%Z" , ZoneOffset .ofHours (12 )).parse ("2000-03-01T05:00:00Z" )),
529+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
530+ assertEquals (
531+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S%z" , ZoneOffset .ofHours (4 )).parse ("2000-03-01T05:00:00Z" )),
532+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
533+ assertEquals (
534+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S%:z" , ZoneOffset .ofHours (-1 )).parse ("2000-03-01T05:00:00Z" )),
535+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
536+ assertEquals (
537+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S%::z" , ZoneOffset .ofHours (-9 )).parse ("2000-03-01T05:00:00Z" )),
538+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
539+ assertEquals (
540+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S%:::z" , ZoneOffset .ofHours (9 )).parse ("2000-03-01T05:00:00Z" )),
541+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
542+
543+ assertEquals (
544+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S %Z" , ZoneOffset .ofHours (5 )).parse ("2000-03-01T05:00:00 UTC" )),
545+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
546+ assertEquals (
547+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S %z" , ZoneOffset .ofHours (3 )).parse ("2000-03-01T05:00:00 UTC" )),
548+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .UTC ).toInstant ());
549+
550+ assertEquals (
551+ Instant .from (createOffsetFormatter ("%Y-%m-%dT%H:%M:%S %Z" , ZoneOffset .ofHours (5 )).parse ("2000-03-01T05:00:00 -03:00" )),
552+ OffsetDateTime .of (2000 , 3 , 1 , 5 , 0 , 0 , 0 , ZoneOffset .ofHours (-3 )).toInstant ());
553+ }
554+
525555 private static TemporalAccessor strptime (final String string , final String format ) {
526556 final RubyDateTimeFormatter formatter = RubyDateTimeFormatter .ofPattern (format );
527557 return formatter .parseUnresolved (string );
0 commit comments