From ae4c3ab4e150ac56d8a20f4b0899b008149f0db1 Mon Sep 17 00:00:00 2001 From: juzimao <578961953@qq.com> Date: Fri, 17 Jun 2022 11:08:38 +0800 Subject: [PATCH] [Fix] Fix the JSONUtils tool class time zone problem #10282 (#10284) * [Fix] Fix the JSONUtils tool class time zone problem #10282 * [Fix] Fix the JSONUtils tool class time zone problem #10282 * Update JSONUtils.java remove unnessnary log * Update JSONUtilsTest.java add timezone import Co-authored-by: xiangzihao <460888207@qq.com> --- .../dolphinscheduler/common/utils/JSONUtils.java | 4 ++++ .../common/utils/JSONUtilsTest.java | 14 ++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java index dbd7d833b5..1a09ae11ef 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java @@ -82,6 +82,10 @@ public class JSONUtils { throw new UnsupportedOperationException("Construct JSONUtils"); } + public static synchronized void setTimeZone(TimeZone timeZone) { + objectMapper.setTimeZone(timeZone); + } + public static ArrayNode createArrayNode() { return objectMapper.createArrayNode(); } diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java index 2d638c943e..503d4726c7 100644 --- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java +++ b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java @@ -262,11 +262,14 @@ public class JSONUtilsTest { @Test public void dateToString() { - TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); + TimeZone timeZone = TimeZone.getTimeZone("UTC"); + TimeZone.setDefault(timeZone); + JSONUtils.setTimeZone(timeZone); + String time = "2022-02-22 13:38:24"; Date date = DateUtils.stringToDate(time); String json = JSONUtils.toJsonString(date); - Assert.assertEquals(json, "\"" + time + "\""); + Assert.assertEquals("\"" + time + "\"", json); String errorFormatTime = "Tue Feb 22 03:50:00 UTC 2022"; Assert.assertNull(DateUtils.stringToDate(errorFormatTime)); @@ -274,10 +277,13 @@ public class JSONUtilsTest { @Test public void stringToDate() { - TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); + TimeZone timeZone = TimeZone.getTimeZone("UTC"); + TimeZone.setDefault(timeZone); + JSONUtils.setTimeZone(timeZone); + String json = "\"2022-02-22 13:38:24\""; Date date = JSONUtils.parseObject(json, Date.class); - Assert.assertEquals(date, DateUtils.stringToDate("2022-02-22 13:38:24")); + Assert.assertEquals(DateUtils.stringToDate("2022-02-22 13:38:24"), date); } }