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);
}
}