This commit is contained in:
mcy
2019-02-28 17:29:06 +08:00
parent f21abc13af
commit e7f069850f
5 changed files with 98 additions and 53 deletions

View File

@@ -10,10 +10,9 @@ import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import com.alibaba.otter.canal.client.adapter.rdb.config.MappingConfig;
import org.joda.time.DateTimeZone;
import com.alibaba.otter.canal.client.adapter.support.Util;
public class SyncUtil {
@@ -197,9 +196,12 @@ public class SyncUtil {
} else if (value instanceof String) {
String v = (String) value;
if (!v.startsWith("0000-00-00")) {
v = v.trim().replace(" ", "T");
DateTime dt = new DateTime(v, DateTimeZone.forID("+08:00"));
pstmt.setDate(i, new Date(dt.toDate().getTime()));
java.util.Date date = Util.parseDate(v);
if (date != null) {
pstmt.setDate(i, new Date(date.getTime()));
} else {
pstmt.setNull(i, type);
}
} else {
pstmt.setNull(i, type);
}
@@ -214,9 +216,12 @@ public class SyncUtil {
pstmt.setTime(i, new java.sql.Time(((java.util.Date) value).getTime()));
} else if (value instanceof String) {
String v = (String) value;
v = "T" + v;
DateTime dt = new DateTime(v, DateTimeZone.forID("+08:00"));
pstmt.setTime(i, new Time(dt.toDate().getTime()));
java.util.Date date = Util.parseDate(v);
if (date != null) {
pstmt.setTime(i, new Time(date.getTime()));
} else {
pstmt.setNull(i, type);
}
} else {
pstmt.setNull(i, type);
}
@@ -229,9 +234,12 @@ public class SyncUtil {
} else if (value instanceof String) {
String v = (String) value;
if (!v.startsWith("0000-00-00")) {
v = v.trim().replace(" ", "T");
DateTime dt = new DateTime(v, DateTimeZone.forID("+08:00"));
pstmt.setTimestamp(i, new Timestamp(dt.toDate().getTime()));
java.util.Date date = Util.parseDate(v);
if (date != null) {
pstmt.setTimestamp(i, new Timestamp(date.getTime()));
} else {
pstmt.setNull(i, type);
}
} else {
pstmt.setNull(i, type);
}