From e6153b3749e87203e6c610579278d01692d3606e Mon Sep 17 00:00:00 2001 From: "xuyi556677@163.com" Date: Fri, 18 Jan 2019 17:04:13 +0200 Subject: [PATCH] fix time zone bug in different region --- .../iotdb/db/sql/DatetimeUtilsTest.java | 34 ++++--------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/iotdb/src/test/java/org/apache/iotdb/db/sql/DatetimeUtilsTest.java b/iotdb/src/test/java/org/apache/iotdb/db/sql/DatetimeUtilsTest.java index 85914ed938d80..000465e52ac6f 100644 --- a/iotdb/src/test/java/org/apache/iotdb/db/sql/DatetimeUtilsTest.java +++ b/iotdb/src/test/java/org/apache/iotdb/db/sql/DatetimeUtilsTest.java @@ -35,33 +35,15 @@ public class DatetimeUtilsTest { private ZoneOffset zoneOffset; private ZoneId zoneId; - - public static void main(String[] args) throws LogicalOperatorException { - // ZoneId id = ZoneId.of("+08:00"); - // Instant instant = Instant.now(); - // ZoneOffset zoneOffset = id.getRules().getOffset(instant); - // System.out.println(currentOffsetForMyZone); - - // DatetimeUtils.convertDatetimeStrToMillisecond("2019.01.02T15:13:27.689[Asia/Shanghai]", zoneOffset); - // for(String string : ZoneId.getAvailableZoneIds()) { - // ZoneId id = ZoneId.of(string); - // Instant instant = Instant.now(); - // ZoneOffset currentOffsetForMyZone = id.getRules().getOffset(instant); - // System.out.println(string+"--"+currentOffsetForMyZone); - // } - // long timestamp = System.currentTimeMillis(); - // System.out.println(timestamp); - // LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(1546499858912L), - // ZoneId.systemDefault()); - // System.out.println(dateTime); - System.out.println( - DatetimeUtils.convertDatetimeStrToMillisecond("2018-1-1T13:00:07", ZoneId.systemDefault())); - } + // 1546413207689 + // 2019-01-02T15:13:27.689+08:00 + private long delta; @Before public void setUp() throws Exception { zoneOffset = ZonedDateTime.now().getOffset(); zoneId = ZoneId.systemDefault(); + delta = (8 - Long.parseLong(zoneOffset.toString().split(":")[0])) * 3600000; } @After @@ -70,15 +52,13 @@ public void tearDown() throws Exception { @Test public void testConvertDatetimeStrToLongWithoutMS() throws LogicalOperatorException { - // 1546413207689 - // 2019-01-02T15:13:27.689+08:00 String[] timeFormatWithoutMs = new String[]{"2019-01-02 15:13:27", "2019/01/02 15:13:27", "2019.01.02 15:13:27", "2019-01-02T15:13:27", "2019/01/02T15:13:27", "2019.01.02T15:13:27", "2019-01-02 15:13:27" + zoneOffset, "2019/01/02 15:13:27" + zoneOffset, "2019.01.02 15:13:27" + zoneOffset, "2019-01-02T15:13:27" + zoneOffset, "2019/01/02T15:13:27" + zoneOffset, "2019.01.02T15:13:27" + zoneOffset,}; - long res = 1546413207000L; + long res = 1546413207000L + delta; for (String str : timeFormatWithoutMs) { Assert.assertEquals(res, DatetimeUtils.convertDatetimeStrToMillisecond(str, zoneOffset)); } @@ -91,8 +71,6 @@ public void testConvertDatetimeStrToLongWithoutMS() throws LogicalOperatorExcept @Test public void testConvertDatetimeStrToLongWithMS() throws LogicalOperatorException { - // 1546413207689 - // 2019-01-02T15:13:27.689+08:00 String[] timeFormatWithoutMs = new String[]{"2019-01-02 15:13:27.689", "2019/01/02 15:13:27.689", "2019.01.02 15:13:27.689", "2019-01-02T15:13:27.689", "2019/01/02T15:13:27.689", @@ -101,7 +79,7 @@ public void testConvertDatetimeStrToLongWithMS() throws LogicalOperatorException "2019-01-02T15:13:27.689" + zoneOffset, "2019/01/02T15:13:27.689" + zoneOffset, "2019.01.02T15:13:27.689" + zoneOffset,}; - long res = 1546413207689L; + long res = 1546413207689L + delta; for (String str : timeFormatWithoutMs) { assertEquals(res, DatetimeUtils.convertDatetimeStrToMillisecond(str, zoneOffset)); }