diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/ResultSet.java b/src/main/java/dev/pcvolkmer/onco/datamapper/ResultSet.java index 491e083..9175ede 100644 --- a/src/main/java/dev/pcvolkmer/onco/datamapper/ResultSet.java +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/ResultSet.java @@ -2,6 +2,8 @@ package dev.pcvolkmer.onco.datamapper; import dev.pcvolkmer.onco.datamapper.exceptions.DataAccessException; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.Date; import java.util.Map; @@ -124,7 +126,9 @@ public class ResultSet { return null; } if (raw instanceof Date) { - return (Date) raw; + var localDate = LocalDate.parse(raw.toString()); + // JSON Converter uses UTC timezone + return Date.from(localDate.atStartOfDay(ZoneId.of("UTC")).toInstant()); } throw new IllegalArgumentException("Cannot convert " + raw.getClass() + " to Date"); diff --git a/src/test/java/dev/pcvolkmer/onco/datamapper/ResultSetTest.java b/src/test/java/dev/pcvolkmer/onco/datamapper/ResultSetTest.java index 19e815f..ada3b58 100644 --- a/src/test/java/dev/pcvolkmer/onco/datamapper/ResultSetTest.java +++ b/src/test/java/dev/pcvolkmer/onco/datamapper/ResultSetTest.java @@ -37,7 +37,7 @@ class ResultSetTest { void shouldReturnDateValues() { var data = getTestData(); - assertThat(data.getDate("date")).isEqualTo(new Date(Date.from(Instant.parse("2025-06-21T12:00:00Z")).getTime())); + assertThat(data.getDate("date")).isEqualTo(new Date(Date.from(Instant.parse("2025-06-21T00:00:00Z")).getTime())); } static ResultSet getTestData() { @@ -45,7 +45,7 @@ class ResultSetTest { Map.of( "string", "TestString", "int", 42, - "date", new Date(Date.from(Instant.parse("2025-06-21T12:00:00Z")).getTime()) + "date", new Date(Date.from(Instant.parse("2025-06-21T02:00:00Z")).getTime()) ) ); }