From 83c1d3e08f92c0efc2f7d1544f9df99d04107b22 Mon Sep 17 00:00:00 2001 From: Matt Coley Date: Wed, 28 Aug 2019 17:01:17 -0400 Subject: [PATCH 1/2] Fix datetime zone output. --- .../com/hubspot/jinjava/objects/date/StrftimeFormatter.java | 4 ++-- .../hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java b/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java index fe06ccffb..900e637df 100644 --- a/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java +++ b/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java @@ -47,8 +47,8 @@ public class StrftimeFormatter { CONVERSIONS['X'] = "HH:mm:ss"; CONVERSIONS['y'] = "yy"; CONVERSIONS['Y'] = "yyyy"; - CONVERSIONS['z'] = "Z"; - CONVERSIONS['Z'] = "ZZZZ"; + CONVERSIONS['z'] = "ZZZZ"; + CONVERSIONS['Z'] = "z"; CONVERSIONS['%'] = "%"; NOMINATIVE_CONVERSIONS['B'] = "LLLL"; diff --git a/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java b/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java index 16287c472..5c0d2eefc 100644 --- a/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java +++ b/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java @@ -66,6 +66,11 @@ public void itSupportsTimezones() throws Exception { assertThat(filter.filter(1539277785000L, interpreter, "%B %d, %Y, at %I:%M %p", "UTC+8")).isEqualTo("October 12, 2018, at 01:09 AM"); } + @Test + public void itOutputsTimezoneName() { + assertThat(filter.filter(1539277785000L, interpreter, "%l:%M %p %Z", "America/Los_Angeles")).isEqualTo("10:09 AM PDT"); + } + @Test(expected = InvalidDateFormatException.class) public void itThrowsExceptionOnInvalidTimezone() throws Exception { filter.filter(1539277785000L, interpreter, "%B %d, %Y, at %I:%M %p", "Not a timezone"); From bd53c60755cbec9852408f91e57724447e8475bc Mon Sep 17 00:00:00 2001 From: Matt Coley Date: Wed, 28 Aug 2019 17:12:52 -0400 Subject: [PATCH 2/2] Fix tests --- .../com/hubspot/jinjava/objects/date/StrftimeFormatter.java | 2 +- .../jinjava/lib/filter/DateTimeFormatFilterTest.java | 5 +++++ .../hubspot/jinjava/objects/date/StrftimeFormatterTest.java | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java b/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java index 900e637df..898aa4f51 100644 --- a/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java +++ b/src/main/java/com/hubspot/jinjava/objects/date/StrftimeFormatter.java @@ -47,7 +47,7 @@ public class StrftimeFormatter { CONVERSIONS['X'] = "HH:mm:ss"; CONVERSIONS['y'] = "yy"; CONVERSIONS['Y'] = "yyyy"; - CONVERSIONS['z'] = "ZZZZ"; + CONVERSIONS['z'] = "Z"; CONVERSIONS['Z'] = "z"; CONVERSIONS['%'] = "%"; diff --git a/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java b/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java index 5c0d2eefc..2b7cd180b 100644 --- a/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java +++ b/src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java @@ -71,6 +71,11 @@ public void itOutputsTimezoneName() { assertThat(filter.filter(1539277785000L, interpreter, "%l:%M %p %Z", "America/Los_Angeles")).isEqualTo("10:09 AM PDT"); } + @Test + public void itOutputsTimezoneOffset() { + assertThat(filter.filter(1539277785000L, interpreter, "%l:%M %p %z", "America/Los_Angeles")).isEqualTo("10:09 AM -0700"); + } + @Test(expected = InvalidDateFormatException.class) public void itThrowsExceptionOnInvalidTimezone() throws Exception { filter.filter(1539277785000L, interpreter, "%B %d, %Y, at %I:%M %p", "Not a timezone"); diff --git a/src/test/java/com/hubspot/jinjava/objects/date/StrftimeFormatterTest.java b/src/test/java/com/hubspot/jinjava/objects/date/StrftimeFormatterTest.java index 6ad664d2a..683bb568c 100644 --- a/src/test/java/com/hubspot/jinjava/objects/date/StrftimeFormatterTest.java +++ b/src/test/java/com/hubspot/jinjava/objects/date/StrftimeFormatterTest.java @@ -2,6 +2,7 @@ import static org.assertj.core.api.Assertions.assertThat; +import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Locale; @@ -85,8 +86,9 @@ public void testFinnishMonths() { @Test public void testZoneOutput() { - assertThat(StrftimeFormatter.format(d, "%z")).isEqualTo("+0000"); - assertThat(StrftimeFormatter.format(d, "%Z")).isEqualTo("GMT"); + d = ZonedDateTime.of(d.toLocalDateTime(), ZoneId.of("America/Los_Angeles")); + assertThat(StrftimeFormatter.format(d, "%z")).isEqualTo("-0800"); + assertThat(StrftimeFormatter.format(d, "%Z")).isEqualTo("PST"); } @Test