@@ -146,16 +146,26 @@ public void testRounding() {
146146 assertDateMathEquals ("2014-11-18||/y" , "2014-12-31T23:59:59.999" , 0 , true , null );
147147 assertDateMathEquals ("2014||/y" , "2014-01-01" , 0 , false , null );
148148 assertDateMathEquals ("2014-01-01T00:00:00.001||/y" , "2014-12-31T23:59:59.999" , 0 , true , null );
149+ // rounding should also take into account time zone
150+ assertDateMathEquals ("2014-11-18||/y" , "2013-12-31T23:00:00.000Z" , 0 , false , DateTimeZone .forID ("CET" ));
151+ assertDateMathEquals ("2014-11-18||/y" , "2014-12-31T22:59:59.999Z" , 0 , true , DateTimeZone .forID ("CET" ));
149152
150153 assertDateMathEquals ("2014-11-18||/M" , "2014-11-01" , 0 , false , null );
151154 assertDateMathEquals ("2014-11-18||/M" , "2014-11-30T23:59:59.999" , 0 , true , null );
152155 assertDateMathEquals ("2014-11||/M" , "2014-11-01" , 0 , false , null );
153156 assertDateMathEquals ("2014-11||/M" , "2014-11-30T23:59:59.999" , 0 , true , null );
157+ assertDateMathEquals ("2014-11-18||/M" , "2014-10-31T23:00:00.000Z" , 0 , false , DateTimeZone .forID ("CET" ));
158+ assertDateMathEquals ("2014-11-18||/M" , "2014-11-30T22:59:59.999Z" , 0 , true , DateTimeZone .forID ("CET" ));
154159
155160 assertDateMathEquals ("2014-11-18T14||/w" , "2014-11-17" , 0 , false , null );
156161 assertDateMathEquals ("2014-11-18T14||/w" , "2014-11-23T23:59:59.999" , 0 , true , null );
157162 assertDateMathEquals ("2014-11-18||/w" , "2014-11-17" , 0 , false , null );
158163 assertDateMathEquals ("2014-11-18||/w" , "2014-11-23T23:59:59.999" , 0 , true , null );
164+ assertDateMathEquals ("2014-11-18||/w" , "2014-11-16T23:00:00.000Z" , 0 , false , DateTimeZone .forID ("+01:00" ));
165+ assertDateMathEquals ("2014-11-18||/w" , "2014-11-17T01:00:00.000Z" , 0 , false , DateTimeZone .forID ("-01:00" ));
166+ assertDateMathEquals ("2014-11-18||/w" , "2014-11-16T23:00:00.000Z" , 0 , false , DateTimeZone .forID ("CET" ));
167+ assertDateMathEquals ("2014-11-18||/w" , "2014-11-23T22:59:59.999Z" , 0 , true , DateTimeZone .forID ("CET" ));
168+ assertDateMathEquals ("2014-07-22||/w" , "2014-07-20T22:00:00.000Z" , 0 , false , DateTimeZone .forID ("CET" )); // with DST
159169
160170 assertDateMathEquals ("2014-11-18T14||/d" , "2014-11-18" , 0 , false , null );
161171 assertDateMathEquals ("2014-11-18T14||/d" , "2014-11-18T23:59:59.999" , 0 , true , null );
@@ -181,7 +191,7 @@ public void testRounding() {
181191 assertDateMathEquals ("2014-11-18T14:27:32||/s" , "2014-11-18T14:27:32" , 0 , false , null );
182192 assertDateMathEquals ("2014-11-18T14:27:32||/s" , "2014-11-18T14:27:32.999" , 0 , true , null );
183193 }
184-
194+
185195 public void testTimestamps () {
186196 assertDateMathEquals ("1418248078000" , "2014-12-10T21:47:58.000" );
187197
0 commit comments