X-Git-Url: https://juplo.de/gitweb/?p=jpa-converters;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fjpa%2Fconverters%2FOffsetDateTimeConverter.java;h=8815cf02c528e66b9eac1df7db3fddc9c6553e19;hp=d49da186e6dbb48fdab3c42e18f6f69697076e26;hb=459423649abd980aee3f093606281819bbe4b83e;hpb=7a11c7d53d9546aa639a2e960811e321805ec643 diff --git a/src/main/java/de/juplo/jpa/converters/OffsetDateTimeConverter.java b/src/main/java/de/juplo/jpa/converters/OffsetDateTimeConverter.java index d49da18..8815cf0 100644 --- a/src/main/java/de/juplo/jpa/converters/OffsetDateTimeConverter.java +++ b/src/main/java/de/juplo/jpa/converters/OffsetDateTimeConverter.java @@ -1,35 +1,28 @@ package de.juplo.jpa.converters; +import java.sql.Timestamp; import java.time.OffsetDateTime; -import java.time.ZonedDateTime; -import java.util.GregorianCalendar; +import java.time.ZoneOffset; import javax.persistence.AttributeConverter; import javax.persistence.Converter; /** - * Converts a {@link OffsetDateTime} to a {@link GregorianCalendar}, by first - * converting it into a {@link ZonedDateTime} and then converting it 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 OffsetDateTime} to a {@link Timestamp}. * @author Kai Moritz */ @Converter(autoApply = true) -public class OffsetDateTimeConverter implements AttributeConverter +public class OffsetDateTimeConverter implements AttributeConverter { @Override - public GregorianCalendar convertToDatabaseColumn(OffsetDateTime odt) + public Timestamp convertToDatabaseColumn(OffsetDateTime odt) { - return GregorianCalendar.from(ZonedDateTime.from(odt)); + return Timestamp.from(odt.withOffsetSameInstant(ZoneOffset.UTC).toInstant()); } @Override - public OffsetDateTime convertToEntityAttribute(GregorianCalendar calendar) + public OffsetDateTime convertToEntityAttribute(Timestamp ts) { - return OffsetDateTime.from(calendar.toZonedDateTime()); + return OffsetDateTime.of(ts.toLocalDateTime(), ZoneOffset.UTC); } }