@@ -38,34 +38,43 @@ public void testGetTimestamp(boolean sameTZ)
3838 if (Compatibility .skipBugLowerThenOrEqualTo ("1.2.844" , "0.4.2" )) {
3939 return ;
4040 }
41- calTz = "Asia/Shanghai" ;
41+ calTz = "America/Los_Angeles" ; // -8/-7
4242 sessionTz = "Europe/Moscow" ; // +3
4343 }
4444 TimeZone targetZone = TimeZone .getTimeZone (calTz );
4545 Calendar cal = Calendar .getInstance (targetZone );
46+ System .out .println ("testGetTimestamp sameTZ=" + sameTZ );
4647
4748
4849 try (Connection connection = Utils .createConnectionWithPresignedUrlDisable ();
4950 Statement statement = connection .createStatement ()) {
5051
5152 statement .execute (String .format ("set timezone='%s'" , sessionTz ));
52- ResultSet r ;
53- Instant exp ;
5453
5554 Object [][] cases = new Object [][]{
5655 // use tz in string, ignore session timezone
57- {"2021-07-12T21:30:55+0700" , "2021-07-12T14:30:55.000Z" },
56+ {"2021-07-12T21:30:55+0700" , "2021-07-12T14:30:55.000Z" , "same" },
5857 // use tz in string, ignore session timezone
59- {"2022-07-12 14:30:55Z" , "2022-07-12T14:30:55.000Z" },
60- {"2023-07-12 14:30:55" , "2023-07-12T06:30:55.000Z" },
58+ {"2022-07-12 14:30:55Z" , "2022-07-12T14:30:55.000Z" , "same" },
59+ {"2023-07-12 14:30:55" , "2023-07-12T06:30:55.000Z" , "2023-07-12T11:30:55.000Z" },
6160 };
6261
6362 for (int i = 0 ; i < cases .length ; i ++) {
6463 String sql = String .format ("SELECT '%s'::timestamp" , cases [i ][0 ]);
65- r = statement .executeQuery (sql );
64+ ResultSet r = statement .executeQuery (sql );
6665 r .next ();
67- exp = Instant .parse ((String ) cases [i ][1 ]);
66+ String expS ;
67+ if (sameTZ ) {
68+ expS = (String ) cases [i ][1 ];
69+ } else {
70+ expS = (String ) cases [i ][2 ];
71+ if (expS .equals ("same" )) {
72+ expS = (String ) cases [i ][1 ];
73+ }
74+ }
75+ Instant exp = Instant .parse (expS );
6876 Assert .assertEquals (exp , r .getTimestamp (1 ).toInstant ());
77+ // ignore cal
6978 Assert .assertEquals (exp , r .getTimestamp (1 , cal ).toInstant ());
7079 r .close ();
7180 }
@@ -135,7 +144,7 @@ public void testTypeTimestampTz()
135144
136145 r = statement .executeQuery ("SELECT '1983-07-12 21:30:55 +0700'::timestamp_tz" );
137146 r .next ();
138- Instant exp = Instant .parse ("1983-07-12 14 :30:55.000Z" );
147+ Instant exp = Instant .parse ("1983-07-12T14 :30:55.000Z" );
139148 Assert .assertEquals (exp , r .getTimestamp (1 ).toInstant ());
140149 r .close ();
141150
0 commit comments