|
| 1 | +// Copyright 2017 the V8 project authors. All rights reserved. |
| 2 | +// Use of this source code is governed by a BSD-style license that can be |
| 3 | +// found in the LICENSE file. |
| 4 | + |
| 5 | +// Flags: --icu-timezone-data |
| 6 | +// Environment Variables: TZ=Europe/Moscow |
| 7 | + |
| 8 | +// https://www.timeanddate.com/time/zone/russia/moscow |
| 9 | + |
| 10 | +// 2010-03-28T02:00 : UTC+3 => UTC+4 |
| 11 | +assertEquals(new Date(Date.UTC(2010, 2, 27, 22, 59)), |
| 12 | + new Date(2010, 2, 28, 1, 59)); |
| 13 | +assertEquals(new Date(Date.UTC(2010, 2, 27, 23)), |
| 14 | + new Date(2010, 2, 28, 2)); |
| 15 | +assertEquals(new Date(Date.UTC(2010, 2, 27, 23, 30)), |
| 16 | + new Date(2010, 2, 28, 2, 30)); |
| 17 | +assertEquals(new Date(Date.UTC(2010, 2, 27, 23)), |
| 18 | + new Date(2010, 2, 28, 3)); |
| 19 | +assertEquals(new Date(Date.UTC(2010, 2, 27, 23, 30)), |
| 20 | + new Date(2010, 2, 28, 3, 30)); |
| 21 | +assertEquals((new Date(2010, 2, 28, 3, 30)).getTimezoneOffset(), |
| 22 | + (new Date(2010, 2, 28, 2, 30)).getTimezoneOffset()); |
| 23 | + |
| 24 | +// 2010-10-31T03:00 : UTC+4 => UTC+3 |
| 25 | +assertEquals(new Date(Date.UTC(2010, 9, 30, 21, 59)), |
| 26 | + new Date(2010, 9, 31, 1, 59)); |
| 27 | +assertEquals(new Date(Date.UTC(2010, 9, 30, 22)), |
| 28 | + new Date(2010, 9, 31, 2)); |
| 29 | +assertEquals(new Date(Date.UTC(2010, 9, 30, 22, 30)), |
| 30 | + new Date(2010, 9, 31, 2, 30)); |
| 31 | +assertEquals(new Date(Date.UTC(2010, 9, 30, 22, 59)), |
| 32 | + new Date(2010, 9, 31, 2, 59)) |
| 33 | +assertEquals(new Date(Date.UTC(2010, 9, 31, 0)), |
| 34 | + new Date(2010, 9, 31, 3)) |
| 35 | +assertEquals(new Date(Date.UTC(2010, 9, 31, 0, 30)), |
| 36 | + new Date(2010, 9, 31, 3, 30)) |
| 37 | + |
| 38 | +// 2011-03-27T02:00 : UTC+3 => UTC+4 |
| 39 | +assertEquals(new Date(Date.UTC(2011, 2, 26, 22, 59)), |
| 40 | + new Date(2011, 2, 27, 1, 59)) |
| 41 | +assertEquals(new Date(Date.UTC(2011, 2, 26, 23)), |
| 42 | + new Date(2011, 2, 27, 2)); |
| 43 | +assertEquals(new Date(Date.UTC(2011, 2, 26, 23, 30)), |
| 44 | + new Date(2011, 2, 27, 2, 30)); |
| 45 | +assertEquals(new Date(Date.UTC(2011, 2, 26, 23)), |
| 46 | + new Date(2011, 2, 27, 3)); |
| 47 | +assertEquals(new Date(Date.UTC(2011, 2, 26, 23, 30)), |
| 48 | + new Date(2011, 2, 27, 3, 30)); |
| 49 | +assertEquals((new Date(2011, 2, 27, 3, 30)).getTimezoneOffset(), |
| 50 | + (new Date(2011, 2, 27, 2, 30)).getTimezoneOffset()); |
| 51 | + |
| 52 | +// No daylight saving time in 2012, 2013: UTC+4 year-round |
| 53 | +assertEquals(new Date(Date.UTC(2012, 5, 21, 0)), |
| 54 | + new Date(2012, 5, 21, 4)) |
| 55 | +assertEquals(new Date(Date.UTC(2012, 11, 21, 0)), |
| 56 | + new Date(2012, 11, 21, 4)) |
| 57 | +assertEquals(new Date(Date.UTC(2013, 5, 21, 0)), |
| 58 | + new Date(2013, 5, 21, 4)) |
| 59 | +assertEquals(new Date(Date.UTC(2013, 11, 21, 0)), |
| 60 | + new Date(2013, 11, 21, 4)) |
| 61 | + |
| 62 | +// 2014-10-26T0200: UTC+4 => UTC+3 (year-round) |
| 63 | +assertEquals(new Date(Date.UTC(2014, 9, 25, 20, 59)), |
| 64 | + new Date(2014, 9, 26, 0, 59)); |
| 65 | +assertEquals(new Date(Date.UTC(2014, 9, 25, 21)), |
| 66 | + new Date(2014, 9, 26, 1)); |
| 67 | +assertEquals(new Date(Date.UTC(2014, 9, 25, 21, 30)), |
| 68 | + new Date(2014, 9, 26, 1, 30)); |
| 69 | +assertEquals(new Date(Date.UTC(2014, 9, 25, 21, 59)), |
| 70 | + new Date(2014, 9, 26, 1, 59)) |
| 71 | +assertEquals(new Date(Date.UTC(2014, 9, 25, 23)), |
| 72 | + new Date(2014, 9, 26, 2)) |
| 73 | +assertEquals(new Date(Date.UTC(2014, 9, 25, 23, 1)), |
| 74 | + new Date(2014, 9, 26, 2, 1)) |
| 75 | + |
| 76 | +assertEquals(new Date(Date.UTC(2014, 11, 21, 0)), |
| 77 | + new Date(2014, 11, 21, 3)) |
| 78 | +assertEquals(new Date(Date.UTC(2015, 5, 21, 0)), |
| 79 | + new Date(2015, 5, 21, 3)) |
| 80 | +assertEquals(new Date(Date.UTC(2015, 11, 21, 0)), |
| 81 | + new Date(2015, 11, 21, 3)) |
| 82 | +assertEquals(new Date(Date.UTC(2016, 5, 21, 0)), |
| 83 | + new Date(2016, 5, 21, 3)) |
| 84 | +assertEquals(new Date(Date.UTC(2015, 11, 21, 0)), |
| 85 | + new Date(2015, 11, 21, 3)) |
0 commit comments