fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[FEATURE]全局设置好日期格式后,不需要再在context中进行设置了

Open tywo45 opened this issue 2 years ago • 1 comments

请描述您的需求或者改进建议

在设置JSON.configWriterDateFormat("yyyy-MM-dd HH:mm:ss");后,仍然需要进行对context的设置,否则timestamp序列化时,会输出整数串

请描述你建议的实现方案

全局设置好日期格式后,应该不需要再设置context

描述您考虑过的替代方案

附加信息

tywo45 avatar Apr 11 '24 04:04 tywo45

  @Test
    public void test() {
        String defaultWriterFormat = JSONFactory.getDefaultWriterFormat();
        try {
            String dateFormat = "yyyy-MM-dd'T'HH:mm:ss";
            JSON.configWriterDateFormat(dateFormat);

            JSONWriter.Context writeContext = JSONFactory.createWriteContext();
            assertEquals(dateFormat, writeContext.getDateFormat());

            Date date = new Date(1712988987882L);
            String json = JSON.toJSONString(date, writeContext);
            assertEquals("\"2024-04-13T14:16:27\"", json);

            java.sql.Timestamp ts = new Timestamp(date.getTime());
            String json1 = JSON.toJSONString(date, writeContext);
            assertEquals("\"2024-04-13T14:16:27\"", json1);
        } finally {
            JSON.configWriterDateFormat(defaultWriterFormat);
        }
        assertEquals(defaultWriterFormat, JSONFactory.getDefaultWriterFormat());
    }

设置过全局的dateFormat之后不需要额外设置,不过你要注意构造Context和设置全局dateFormat的先后顺序

wenshao avatar Apr 13 '24 06:04 wenshao