src/main/java/org/embulk/output/jdbc/setter/SqlDateColumnSetter.java in embulk-output-jdbc-0.3.0 vs src/main/java/org/embulk/output/jdbc/setter/SqlDateColumnSetter.java in embulk-output-jdbc-0.4.0

- old
+ new

@@ -1,26 +1,26 @@ package org.embulk.output.jdbc.setter; +import java.util.Calendar; import java.io.IOException; import java.sql.SQLException; import java.sql.Date; -import org.joda.time.DateTimeZone; import org.embulk.spi.time.Timestamp; import org.embulk.output.jdbc.JdbcColumn; import org.embulk.output.jdbc.BatchInsert; public class SqlDateColumnSetter extends ColumnSetter { - private final DateTimeZone timeZone; + private final Calendar calendar; public SqlDateColumnSetter(BatchInsert batch, JdbcColumn column, DefaultValueSetter defaultValue, - DateTimeZone timeZone) + Calendar calendar) { super(batch, column, defaultValue); - this.timeZone = timeZone; + this.calendar = calendar; } @Override public void nullValue() throws IOException, SQLException { @@ -52,12 +52,8 @@ } @Override public void timestampValue(Timestamp v) throws IOException, SQLException { - // JavaDoc of java.sql.Time says: - // >> To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated. - long normalized = timeZone.convertUTCToLocal(v.toEpochMilli()); - Date d = new Date(normalized); - batch.setSqlDate(d, getSqlType()); + batch.setSqlDate(v, calendar); } }