Skip to content

Commit 6670a21

Browse files
authored
Merge pull request #1188 from HubSpot/fix-date-time-with-timezone
Fix date-time format with configured timezone.
2 parents c3eb356 + 181ba21 commit 6670a21

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/main/java/com/hubspot/jinjava/lib/fn/Functions.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@ public static String dateTimeFormat(Object var, String... format) {
213213
zoneOffset = ((ZonedDateTime) var).getZone();
214214
} else if (var instanceof PyishDate) {
215215
zoneOffset = ((PyishDate) var).toDateTime().getZone();
216+
} else if (interpreter != null) {
217+
zoneOffset = interpreter.getConfig().getTimeZone();
216218
}
217219

218220
if (var == null) {

src/test/java/com/hubspot/jinjava/lib/filter/DateTimeFormatFilterTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,4 +204,24 @@ public void itUsesDeprecationDateIfNoDateProvided() {
204204
JinjavaInterpreter.popCurrent();
205205
}
206206
}
207+
208+
@Test
209+
public void itUsesTimezoneFromConfigToFormatString() {
210+
Jinjava jinjava = new Jinjava(
211+
JinjavaConfig
212+
.newBuilder()
213+
.withTimeZone(ZoneOffset.ofHours(+2))
214+
.withLocale(new Locale("da"))
215+
.build()
216+
);
217+
JinjavaInterpreter interpreter = jinjava.newInterpreter();
218+
JinjavaInterpreter.pushCurrent(interpreter);
219+
try {
220+
long timestamp = 1718920800000L; // 2024-06-20 22:00:00 UTC
221+
assertThat(filter.filter(timestamp, interpreter, "%b %d, %Y, at %I:%M %p"))
222+
.isEqualTo("jun. 21, 2024, at 12:00 AM");
223+
} finally {
224+
JinjavaInterpreter.popCurrent();
225+
}
226+
}
207227
}

0 commit comments

Comments
 (0)