@@ -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