|
23 | 23 | import java.time.OffsetDateTime; |
24 | 24 | import java.time.ZoneId; |
25 | 25 | import java.time.ZonedDateTime; |
| 26 | +import java.util.GregorianCalendar; |
26 | 27 | import java.util.HashMap; |
27 | 28 | import java.util.Map; |
28 | 29 | import java.util.Properties; |
29 | 30 | import java.util.Random; |
| 31 | +import java.util.TimeZone; |
30 | 32 | import java.util.UUID; |
31 | 33 |
|
32 | 34 | import static org.testng.Assert.assertEquals; |
@@ -279,31 +281,31 @@ public void testDateTypes() throws SQLException { |
279 | 281 | try (Statement stmt = conn.createStatement()) { |
280 | 282 | try (ResultSet rs = stmt.executeQuery("SELECT * FROM test_dates ORDER BY order")) { |
281 | 283 | assertTrue(rs.next()); |
282 | | - assertEquals(rs.getDate("date"), Date.valueOf("1970-01-01")); |
283 | | - assertEquals(rs.getDate("date32"), Date.valueOf("1970-01-01")); |
284 | | - assertEquals(rs.getTimestamp("dateTime"), new java.sql.Timestamp(Date.valueOf("1970-01-01").getTime())); |
285 | | - assertEquals(rs.getTimestamp("dateTime32"), new java.sql.Timestamp(Date.valueOf("1970-01-01").getTime())); |
286 | | - assertEquals(rs.getTimestamp("dateTime643"), new java.sql.Timestamp(Date.valueOf("1970-01-01").getTime())); |
287 | | - assertEquals(rs.getTimestamp("dateTime646"), new java.sql.Timestamp(Date.valueOf("1970-01-01").getTime())); |
288 | | - assertEquals(rs.getTimestamp("dateTime649"), new java.sql.Timestamp(Date.valueOf("1970-01-01").getTime())); |
| 284 | + assertEquals(rs.getDate("date", new GregorianCalendar()), Date.valueOf("1970-01-01")); |
| 285 | + assertEquals(rs.getDate("date32", new GregorianCalendar()), Date.valueOf("1970-01-01")); |
| 286 | + assertEquals(rs.getTimestamp("dateTime").toInstant().toString(), "1970-01-01T00:00:00Z"); |
| 287 | + assertEquals(rs.getTimestamp("dateTime32").toInstant().toString(), "1970-01-01T00:00:00Z"); |
| 288 | + assertEquals(rs.getTimestamp("dateTime643").toInstant().toString(), "1970-01-01T00:00:00Z"); |
| 289 | + assertEquals(rs.getTimestamp("dateTime646").toInstant().toString(), "1970-01-01T00:00:00Z"); |
| 290 | + assertEquals(rs.getTimestamp("dateTime649").toInstant().toString(), "1970-01-01T00:00:00Z"); |
289 | 291 |
|
290 | 292 | assertTrue(rs.next()); |
291 | | - assertEquals(rs.getDate("date"), Date.valueOf("2149-06-06")); |
292 | | - assertEquals(rs.getDate("date32"), Date.valueOf("2299-12-31")); |
293 | | - assertEquals(rs.getTimestamp("dateTime"), java.sql.Timestamp.valueOf("2106-02-07 06:28:15")); |
294 | | - assertEquals(rs.getTimestamp("dateTime32"), java.sql.Timestamp.valueOf("2106-02-07 06:28:15")); |
295 | | - assertEquals(rs.getTimestamp("dateTime643"), java.sql.Timestamp.valueOf("2261-12-31 23:59:59.999")); |
296 | | - assertEquals(rs.getTimestamp("dateTime646"), java.sql.Timestamp.valueOf("2261-12-31 23:59:59.999999")); |
297 | | - assertEquals(rs.getTimestamp("dateTime649"), java.sql.Timestamp.valueOf("2261-12-31 23:59:59.999999999")); |
| 293 | + assertEquals(rs.getDate("date", new GregorianCalendar()), Date.valueOf("2149-06-06")); |
| 294 | + assertEquals(rs.getDate("date32", new GregorianCalendar()), Date.valueOf("2299-12-31")); |
| 295 | + assertEquals(rs.getTimestamp("dateTime").toInstant().toString(), "2106-02-07T06:28:15Z"); |
| 296 | + assertEquals(rs.getTimestamp("dateTime32").toInstant().toString(), "2106-02-07T06:28:15Z"); |
| 297 | + assertEquals(rs.getTimestamp("dateTime643").toInstant().toString(), "2261-12-31T23:59:59.999Z"); |
| 298 | + assertEquals(rs.getTimestamp("dateTime646").toInstant().toString(), "2261-12-31T23:59:59.999999Z"); |
| 299 | + assertEquals(rs.getTimestamp("dateTime649").toInstant().toString(), "2261-12-31T23:59:59.999999999Z"); |
298 | 300 |
|
299 | 301 | assertTrue(rs.next()); |
300 | | - assertEquals(rs.getDate("date").toLocalDate(), date.toLocalDate()); |
301 | | - assertEquals(rs.getDate("date32").toLocalDate(), date32.toLocalDate()); |
302 | | - assertEquals(rs.getTimestamp("dateTime"), dateTime); |
303 | | - assertEquals(rs.getTimestamp("dateTime32"), dateTime32); |
304 | | - assertEquals(rs.getTimestamp("dateTime643"), dateTime643); |
305 | | - assertEquals(rs.getTimestamp("dateTime646"), dateTime646); |
306 | | - assertEquals(rs.getTimestamp("dateTime649"), dateTime649); |
| 302 | + assertEquals(rs.getDate("date", new GregorianCalendar()).toString(), date.toString()); |
| 303 | + assertEquals(rs.getDate("date32", new GregorianCalendar()).toString(), date32.toString()); |
| 304 | + assertEquals(rs.getTimestamp("dateTime", new GregorianCalendar()).toString(), dateTime.toString()); |
| 305 | + assertEquals(rs.getTimestamp("dateTime32", new GregorianCalendar()).toString(), dateTime32.toString()); |
| 306 | + assertEquals(rs.getTimestamp("dateTime643", new GregorianCalendar()).toString(), dateTime643.toString()); |
| 307 | + assertEquals(rs.getTimestamp("dateTime646", new GregorianCalendar()).toString(), dateTime646.toString()); |
| 308 | + assertEquals(rs.getTimestamp("dateTime649", new GregorianCalendar()).toString(), dateTime649.toString()); |
307 | 309 |
|
308 | 310 | assertFalse(rs.next()); |
309 | 311 | } |
@@ -885,37 +887,37 @@ public void testTypeConversions() throws Exception { |
885 | 887 | assertEquals(rs.getObject(3, Double.class), 1.0); |
886 | 888 | assertEquals(String.valueOf(rs.getObject(3, new HashMap<String, Class<?>>(){{put(JDBCType.FLOAT.getName(), Float.class);}})), "1.0"); |
887 | 889 |
|
888 | | - assertEquals(rs.getDate(4), Date.valueOf("2024-12-01")); |
| 890 | + assertEquals(rs.getDate(4, new GregorianCalendar()), Date.valueOf("2024-12-01")); |
889 | 891 | assertTrue(rs.getObject(4) instanceof Date); |
890 | 892 | assertEquals(rs.getObject(4), Date.valueOf("2024-12-01")); |
891 | 893 | assertEquals(rs.getString(4), "2024-12-01");//Underlying object is ZonedDateTime |
892 | 894 | assertEquals(rs.getObject(4, LocalDate.class), LocalDate.of(2024, 12, 1)); |
893 | 895 | assertEquals(rs.getObject(4, ZonedDateTime.class), ZonedDateTime.of(2024, 12, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); |
894 | 896 | assertEquals(String.valueOf(rs.getObject(4, new HashMap<String, Class<?>>(){{put(JDBCType.DATE.getName(), LocalDate.class);}})), "2024-12-01"); |
895 | 897 |
|
896 | | - assertEquals(rs.getTimestamp(5), Timestamp.valueOf("2024-12-01 12:34:56")); |
| 898 | + assertEquals(rs.getTimestamp(5).toInstant().toString(), "2024-12-01T12:34:56Z"); |
897 | 899 | assertTrue(rs.getObject(5) instanceof Timestamp); |
898 | 900 | assertEquals(rs.getObject(5), Timestamp.valueOf("2024-12-01 12:34:56")); |
899 | 901 | assertEquals(rs.getString(5), "2024-12-01T12:34:56Z[UTC]"); |
900 | 902 | assertEquals(rs.getObject(5, LocalDateTime.class), LocalDateTime.of(2024, 12, 1, 12, 34, 56)); |
901 | 903 | assertEquals(rs.getObject(5, ZonedDateTime.class), ZonedDateTime.of(2024, 12, 1, 12, 34, 56, 0, ZoneId.of("UTC"))); |
902 | 904 | assertEquals(String.valueOf(rs.getObject(5, new HashMap<String, Class<?>>(){{put(JDBCType.TIMESTAMP.getName(), LocalDateTime.class);}})), "2024-12-01T12:34:56"); |
903 | 905 |
|
904 | | - assertEquals(rs.getTimestamp(6), Timestamp.valueOf("2024-12-01 12:34:56.789")); |
| 906 | + assertEquals(rs.getTimestamp(6).toInstant().toString(), "2024-12-01T12:34:56.789Z"); |
905 | 907 | assertTrue(rs.getObject(6) instanceof Timestamp); |
906 | 908 | assertEquals(rs.getObject(6), Timestamp.valueOf("2024-12-01 12:34:56.789")); |
907 | 909 | assertEquals(rs.getString(6), "2024-12-01T12:34:56.789Z[UTC]"); |
908 | 910 | assertEquals(rs.getObject(6, LocalDateTime.class), LocalDateTime.of(2024, 12, 1, 12, 34, 56, 789000000)); |
909 | 911 | assertEquals(String.valueOf(rs.getObject(6, new HashMap<String, Class<?>>(){{put(JDBCType.TIMESTAMP.getName(), LocalDateTime.class);}})), "2024-12-01T12:34:56.789"); |
910 | 912 |
|
911 | | - assertEquals(rs.getTimestamp(7), Timestamp.valueOf("2024-12-01 12:34:56.789789")); |
| 913 | + assertEquals(rs.getTimestamp(7).toInstant().toString(), "2024-12-01T12:34:56.789789Z"); |
912 | 914 | assertTrue(rs.getObject(7) instanceof Timestamp); |
913 | 915 | assertEquals(rs.getObject(7), Timestamp.valueOf("2024-12-01 12:34:56.789789")); |
914 | 916 | assertEquals(rs.getString(7), "2024-12-01T12:34:56.789789Z[UTC]"); |
915 | 917 | assertEquals(rs.getObject(7, LocalDateTime.class), LocalDateTime.of(2024, 12, 1, 12, 34, 56, 789789000)); |
916 | 918 | assertEquals(String.valueOf(rs.getObject(7, new HashMap<String, Class<?>>(){{put(JDBCType.TIMESTAMP.getName(), OffsetDateTime.class);}})), "2024-12-01T12:34:56.789789Z"); |
917 | 919 |
|
918 | | - assertEquals(rs.getTimestamp(8), Timestamp.valueOf("2024-12-01 12:34:56.789789789")); |
| 920 | + assertEquals(rs.getTimestamp(8).toInstant().toString(), "2024-12-01T12:34:56.789789789Z"); |
919 | 921 | assertTrue(rs.getObject(8) instanceof Timestamp); |
920 | 922 | assertEquals(rs.getObject(8), Timestamp.valueOf("2024-12-01 12:34:56.789789789")); |
921 | 923 | assertEquals(rs.getString(8), "2024-12-01T12:34:56.789789789Z[UTC]"); |
|
0 commit comments