X-Git-Url: https://juplo.de/gitweb/?p=jpa-converters;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fjpa%2Fconverters%2FZonedDateTimeConverter.java;h=63637ee0fd834b4aa0eea68dd762d5b08ceb149a;hp=de9b7261d0fe492de23b44da5a7d7e343699b600;hb=459423649abd980aee3f093606281819bbe4b83e;hpb=7a11c7d53d9546aa639a2e960811e321805ec643 diff --git a/src/main/java/de/juplo/jpa/converters/ZonedDateTimeConverter.java b/src/main/java/de/juplo/jpa/converters/ZonedDateTimeConverter.java index de9b726..63637ee 100644 --- a/src/main/java/de/juplo/jpa/converters/ZonedDateTimeConverter.java +++ b/src/main/java/de/juplo/jpa/converters/ZonedDateTimeConverter.java @@ -1,33 +1,28 @@ package de.juplo.jpa.converters; +import java.sql.Timestamp; +import java.time.ZoneId; import java.time.ZonedDateTime; -import java.util.GregorianCalendar; import javax.persistence.AttributeConverter; import javax.persistence.Converter; /** - * Converts a {@link ZonedDateTime} to a {@link GregorianCalendar}, as suggested - * in the official Java 8 Time tutorial. - *

- * The {@link GregorianCalendar} can then be persisted as - * {@link java.persistene.TemporalType.TIMESTAMP} with the help of the - * {@link java.persist.Tmporal}-annotation. - * @see https://docs.oracle.com/javase/tutorial/datetime/iso/legacy.html + * Converts a {@link ZonedDateTime} to a {@link Timestamp}. * @author Kai Moritz */ @Converter(autoApply = true) -public class ZonedDateTimeConverter implements AttributeConverter +public class ZonedDateTimeConverter implements AttributeConverter { @Override - public GregorianCalendar convertToDatabaseColumn(ZonedDateTime zdt) + public Timestamp convertToDatabaseColumn(ZonedDateTime zdt) { - return GregorianCalendar.from(zdt); + return Timestamp.from(zdt.withZoneSameInstant(ZoneId.systemDefault()).toInstant()); } @Override - public ZonedDateTime convertToEntityAttribute(GregorianCalendar calendar) + public ZonedDateTime convertToEntityAttribute(Timestamp ts) { - return calendar.toZonedDateTime(); + return ZonedDateTime.ofInstant(ts.toInstant(), ZoneId.systemDefault()); } }