diff --git a/src/connector/jdbc/pom.xml b/src/connector/jdbc/pom.xml
index 3d5cf8efe359049d3a9bd2197af7afe1c9fe5321..907562fe26ab831876a4b0a7edf9860cb8f297a2 100644
--- a/src/connector/jdbc/pom.xml
+++ b/src/connector/jdbc/pom.xml
@@ -122,6 +122,7 @@
**/TSDBJNIConnectorTest.java
**/TaosInfoMonitorTest.java
**/UnsignedNumberJniTest.java
+ **/TimeZoneTest.java
true
diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
index 051eca7e10ad18daea6a7b1ad55f148b786e0798..4fdbb308c54c23a1fb427f1e9f1530894b0daae1 100755
--- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
+++ b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
@@ -80,7 +80,8 @@ public class TSDBJNIConnector {
this.taos = this.connectImp(host, port, dbName, user, password);
if (this.taos == TSDBConstants.JNI_NULL_POINTER) {
- throw TSDBError.createSQLException(TSDBErrorNumbers.ERROR_JNI_CONNECTION_NULL);
+ String errMsg = this.getErrMsg(0);
+ throw TSDBError.createSQLException(TSDBErrorNumbers.ERROR_JNI_CONNECTION_NULL, errMsg);
}
// invoke connectImp only here
taosInfo.conn_open_increment();
diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java
index 535e56f7d7735a7cbd209fbb2a2fddd492021e15..3fea221446775a779593f8c74c77474bc55fb071 100644
--- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java
+++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/QueryDataTest.java
@@ -34,9 +34,8 @@ public class QueryDataTest {
String createTableSql = "create table " + stbName + "(ts timestamp, name binary(64))";
statement.executeUpdate(createTableSql);
-
} catch (SQLException e) {
- return;
+ e.printStackTrace();
}
}
diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimeZoneTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimeZoneTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..94a175ad5c7fd50fa35d6b45ea59ab26ffc02ce1
--- /dev/null
+++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimeZoneTest.java
@@ -0,0 +1,71 @@
+package com.taosdata.jdbc.cases;
+
+import com.taosdata.jdbc.TSDBDriver;
+import org.junit.Test;
+
+import java.sql.*;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Properties;
+
+public class TimeZoneTest {
+
+ private String url = "jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata";
+
+ @Test
+ public void javaTimeZone() {
+ LocalDateTime localDateTime = LocalDateTime.of(1970, 1, 1, 0, 0, 0);
+
+ Instant instant = localDateTime.atZone(ZoneId.of("UTC-8")).toInstant();
+ System.out.println("UTC-8: " + instant.getEpochSecond() + "," + instant);
+
+ instant = localDateTime.atZone(ZoneId.of("UT")).toInstant();
+ System.out.println("UTC: " + instant.getEpochSecond() + "," + instant);
+
+
+ instant = localDateTime.atZone(ZoneId.of("UTC+8")).toInstant();
+ System.out.println("UTC+8: " + instant.getEpochSecond() + "," + instant);
+ }
+
+ @Test
+ public void taosTimeZone() {
+ // given
+ Properties props = new Properties();
+ props.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
+
+ // when and then
+ try (Connection connection = DriverManager.getConnection(url, props)) {
+ Statement stmt = connection.createStatement();
+
+ stmt.execute("drop database if exists timezone_test");
+ stmt.execute("create database if not exists timezone_test keep 365000");
+ stmt.execute("use timezone_test");
+ stmt.execute("create table weather(ts timestamp, temperature float)");
+
+ stmt.execute("insert into timezone_test.weather(ts, temperature) values('1970-01-01 00:00:00', 1.0)");
+
+ ResultSet rs = stmt.executeQuery("select * from timezone_test.weather");
+ while (rs.next()) {
+ Timestamp ts = rs.getTimestamp("ts");
+ System.out.println("ts: " + ts.getTime() + "," + ts);
+ }
+
+ stmt.execute("insert into timezone_test.weather(ts, temperature, humidity) values('1970-01-02 00:00:00', 1.0, 2.0)");
+
+ rs = stmt.executeQuery("select * from timezone_test.weather");
+ while (rs.next()) {
+ Timestamp ts = rs.getTimestamp("ts");
+ System.out.println("ts: " + ts.getTime() + "," + ts);
+ }
+
+
+ stmt.execute("drop database if exists timezone_test");
+
+ stmt.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
\ No newline at end of file