Skip to content

Commit a88a4b9

Browse files
authored
Merge pull request #2357 from ClickHouse/fix_date_time_test
[jdbc-v2] Fixed test to use different from server (UTC) timezone
2 parents 175976b + cdfc556 commit a88a4b9

File tree

2 files changed

+25
-16
lines changed

2 files changed

+25
-16
lines changed

client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1848,7 +1848,7 @@ public void testOperationCustomRoles(String[] roles) throws Exception {
18481848
return;
18491849
}
18501850

1851-
String password = "^1A" + RandomStringUtils.random(12, true, true) + "3B$";
1851+
String password = "^1A" + RandomStringUtils.random(12, true, true) + "3b$";
18521852
final String rolesList = "\"" + Strings.join("\",\"", roles) + "\"";
18531853
try (CommandResponse resp = client.execute("DROP ROLE IF EXISTS " + rolesList).get()) {
18541854
}

jdbc-v2/src/test/java/com/clickhouse/jdbc/DataTypeTests.java

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -337,18 +337,20 @@ public void testDateTypes() throws SQLException {
337337
"'2261-12-31 23:59:59.999', '2261-12-31 23:59:59.999999', '2261-12-31 23:59:59.999999999' )");
338338

339339
// Insert random (valid) values
340-
long now = System.currentTimeMillis();
341-
log.info("Random seed was: {}", now);
342-
343-
Date date = new Date(now);
344-
Date date32 = new Date(now);
345-
java.sql.Timestamp dateTime = new java.sql.Timestamp(now);
340+
final ZoneId zoneId = ZoneId.of("America/Los_Angeles");
341+
final LocalDateTime now = LocalDateTime.now(zoneId);
342+
final Date date = Date.valueOf(now.toLocalDate());
343+
final Date date32 = Date.valueOf(now.toLocalDate());
344+
final java.sql.Timestamp dateTime = Timestamp.valueOf(now);
346345
dateTime.setNanos(0);
347-
java.sql.Timestamp dateTime32 = new java.sql.Timestamp(now);
346+
final java.sql.Timestamp dateTime32 = Timestamp.valueOf(now);
348347
dateTime32.setNanos(0);
349-
java.sql.Timestamp dateTime643 = new java.sql.Timestamp(now);
350-
java.sql.Timestamp dateTime646 = new java.sql.Timestamp(now);
351-
java.sql.Timestamp dateTime649 = new java.sql.Timestamp(now);
348+
final java.sql.Timestamp dateTime643 = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("America/Los_Angeles")));
349+
dateTime643.setNanos(333000000);
350+
final java.sql.Timestamp dateTime646 = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("America/Los_Angeles")));
351+
dateTime646.setNanos(333333000);
352+
final java.sql.Timestamp dateTime649 = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("America/Los_Angeles")));
353+
dateTime649.setNanos(333333333);
352354

353355
try (Connection conn = getConnection()) {
354356
try (PreparedStatement stmt = conn.prepareStatement("INSERT INTO test_dates VALUES ( 4, ?, ?, ?, ?, ?, ?, ?)")) {
@@ -388,6 +390,12 @@ public void testDateTypes() throws SQLException {
388390
assertTrue(rs.next());
389391
assertEquals(rs.getDate("date").toString(), date.toString());
390392
assertEquals(rs.getDate("date32").toString(), date32.toString());
393+
assertEquals(rs.getTimestamp("dateTime").toString(), Timestamp.valueOf(dateTime.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
394+
assertEquals(rs.getTimestamp("dateTime32").toString(), Timestamp.valueOf(dateTime32.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
395+
assertEquals(rs.getTimestamp("dateTime643").toString(), Timestamp.valueOf(dateTime643.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
396+
assertEquals(rs.getTimestamp("dateTime646").toString(), Timestamp.valueOf(dateTime646.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
397+
assertEquals(rs.getTimestamp("dateTime649").toString(), Timestamp.valueOf(dateTime649.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
398+
391399
assertEquals(rs.getTimestamp("dateTime", new GregorianCalendar(TimeZone.getTimeZone("UTC"))).toString(), dateTime.toString());
392400
assertEquals(rs.getTimestamp("dateTime32", new GregorianCalendar(TimeZone.getTimeZone("UTC"))).toString(), dateTime32.toString());
393401
assertEquals(rs.getTimestamp("dateTime643", new GregorianCalendar(TimeZone.getTimeZone("UTC"))).toString(), dateTime643.toString());
@@ -424,11 +432,12 @@ public void testDateTypes() throws SQLException {
424432
assertTrue(rs.next());
425433
assertEquals(rs.getObject("date").toString(), date.toString());
426434
assertEquals(rs.getObject("date32").toString(), date32.toString());
427-
assertEquals(rs.getObject("dateTime").toString(), dateTime.toString());
428-
assertEquals(rs.getObject("dateTime32").toString(), dateTime32.toString());
429-
assertEquals(rs.getObject("dateTime643").toString(), dateTime643.toString());
430-
assertEquals(rs.getObject("dateTime646").toString(), dateTime646.toString());
431-
assertEquals(rs.getObject("dateTime649").toString(), dateTime649.toString());
435+
436+
assertEquals(rs.getObject("dateTime").toString(), Timestamp.valueOf(dateTime.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
437+
assertEquals(rs.getObject("dateTime32").toString(), Timestamp.valueOf(dateTime32.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
438+
assertEquals(rs.getObject("dateTime643").toString(), Timestamp.valueOf(dateTime643.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
439+
assertEquals(rs.getObject("dateTime646").toString(), Timestamp.valueOf(dateTime646.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
440+
assertEquals(rs.getObject("dateTime649").toString(), Timestamp.valueOf(dateTime649.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime()).toString());
432441

433442
assertFalse(rs.next());
434443
}

0 commit comments

Comments
 (0)