diff --git a/util/src/main/java/de/muehlencord/shared/util/DateUtil.java b/util/src/main/java/de/muehlencord/shared/util/DateUtil.java index 28142c4..b0563ee 100644 --- a/util/src/main/java/de/muehlencord/shared/util/DateUtil.java +++ b/util/src/main/java/de/muehlencord/shared/util/DateUtil.java @@ -21,6 +21,10 @@ public class DateUtil { public static Date getDate(final LocalDate localDate) { return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); } + + public static Date getUtcDate(final LocalDate localDate) { + return Date.from(localDate.atStartOfDay(ZoneId.of("UTC")).toInstant()); + } public static LocalDate getDate(final Date date) { if (date == null) @@ -31,5 +35,15 @@ public class DateUtil { ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault()); return zdt.toLocalDate(); } + + public static LocalDate getUtcDate(final Date date) { + if (date == null) + return null; + // ensure to call toInstant on java.util.Date and not on java.sql.Date because this will throw an UnsupportedOperationException + // see Java doc of java.sql.Date.toInstant() + Instant instant = new java.util.Date(date.getTime()).toInstant(); + ZonedDateTime zdt = instant.atZone(ZoneId.of("UTC")); + return zdt.toLocalDate(); + } }