fastjson icon indicating copy to clipboard operation
fastjson copied to clipboard

UTC时区下,加了SerializerFeature.UseISO8601DateFormat后,时间反序列化失败的问题

Open tcboy opened this issue 3 years ago • 1 comments

UTC时区下,加了SerializerFeature.UseISO8601DateFormat之后,每日0点0分0秒 "2022-09-01 00:00:00" 会被序列化成"2022-09-01Z"这样的格式 这样的字符串反序列化为Date类型会失败。

版本号1.2.68.noneautotype 复现代码:

    public void testTimeStamp() {
        final TimeZone timeZone = TimeZone.getTimeZone("UTC");
        TimeZone.setDefault(timeZone);

        String time = "2022-09-01 00:00:00";
        Order order = new Order();
        order.setTransactionTime(DateUtil.parseDateWithTZ(time, "yyyy-MM-dd HH:mm:ss", "UTC"));
        String json = JSON.toJSONString(order, SerializerFeature.DisableCircularReferenceDetect,
                SerializerFeature.UseISO8601DateFormat);
        System.out.println(json);

        order = JSON.parseObject(json, Order.class, Feature.AllowISO8601DateFormat);
        System.out.println(order);
    }

tcboy avatar Sep 01 '22 13:09 tcboy

https://github.com/alibaba/fastjson2/releases/tag/2.0.12 问题已经修复,请用2.0.12版本

wenshao avatar Sep 02 '22 01:09 wenshao