|
|
@@ -13,6 +13,9 @@ import org.springframework.stereotype.Component;
|
|
|
import java.io.File;
|
|
|
import java.lang.reflect.Type;
|
|
|
import java.sql.*;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
import java.util.Vector;
|
|
|
@@ -230,7 +233,7 @@ public class GdbToPostgisImporter {
|
|
|
// 遍历所有要素
|
|
|
Feature feature;
|
|
|
Integer count = Math.toIntExact(layer.GetFeatureCount(1));
|
|
|
- while ((feature = layer.GetNextFeature()) != null) {
|
|
|
+ while ((feature = layer.GetNextFeature()) != null) {
|
|
|
// feature = layer.GetFeature(j);
|
|
|
// 设置属性值
|
|
|
for (int i = 0; i < defn.GetFieldCount(); i++) {
|
|
|
@@ -276,14 +279,14 @@ public class GdbToPostgisImporter {
|
|
|
pstmt.setString(index, feature.GetFieldAsString(fieldIndex));
|
|
|
break;
|
|
|
case ogr.OFTDate:
|
|
|
- pstmt.setString(index, feature.GetFieldAsString(fieldIndex));
|
|
|
-// pstmt.setDate(index, new java.sql.Date(
|
|
|
-// feature.GetFieldAsDateTime(fieldIndex).toCalendar().getTimeInMillis()));
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
|
|
+ String curfield = feature.GetFieldAsString(fieldIndex).substring(0, 10);
|
|
|
+ pstmt.setDate(index, Date.valueOf(LocalDate.parse(curfield, formatter)));
|
|
|
break;
|
|
|
case ogr.OFTDateTime:
|
|
|
- pstmt.setString(index, feature.GetFieldAsString(fieldIndex));
|
|
|
-// pstmt.setTimestamp(index, new java.sql.Timestamp(
|
|
|
-// feature.GetFieldAsDateTime(fieldIndex).toCalendar().getTimeInMillis()));
|
|
|
+ DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
|
|
+ String curfield2 = feature.GetFieldAsString(fieldIndex).substring(0, 19);
|
|
|
+ pstmt.setTimestamp(index, Timestamp.valueOf(LocalDateTime.parse(curfield2, formatter2)));
|
|
|
break;
|
|
|
default:
|
|
|
pstmt.setString(index, feature.GetFieldAsString(fieldIndex));
|