Browse Source

[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>
3.0.0/version-upgrade
juzimao 2 years ago committed by caishunfeng
parent
commit
ae4c3ab4e1
  1. 4
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
  2. 14
      dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java

4
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();
}

14
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);
}
}

Loading…
Cancel
Save