fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG] Parse day-month-year format json string

Open Cooperzzy opened this issue 1 year ago • 2 comments

问题描述

对于 日-月-年 格式的字符串,fastjson 1.x 可以解析,fastjson兼容无法解析。请问是否考虑支持呢

环境信息

  • OS信息: [MacOS 12.7.4 M1 Pro 16 GB]
  • JDK信息: [Openjdk 17.0.6]
  • 版本信息:[Fastjson 2.0.51]

重现步骤


import com.alibaba.fastjson.JSON;
import org.junit.jupiter.api.Test;

import java.util.Date;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class Test_112 {
    @Test
    public void test() throws Exception {
        Model model = JSON.parseObject("{\"date\":\"01-03-2022 12:00:00\"}", Model.class);
        assertEquals(new Date(122, 2, 1, 12, 0, 0), model.date);
    }

    public static class Model {
        public Date date;
    }
}

相关日志输出

java.time.format.DateTimeParseException: illegal input 01-01-2022 12:00:00 at com.alibaba.fastjson2.util.DateUtils.parseMillis19(DateUtils.java:9763) at com.alibaba.fastjson2.JSONReaderUTF8.readMillis19(JSONReaderUTF8.java:6713) at com.alibaba.fastjson2.JSONReader.readMillisFromString(JSONReader.java:1557) at com.alibaba.fastjson2.JSONReader.readDate(JSONReader.java:1381) at com.alibaba.fastjson2.reader.ORG_1_1_Model.readObject(Unknown Source) at com.alibaba.fastjson.JSON.parseObject(JSON.java:542)

Cooperzzy avatar Jun 30 '24 03:06 Cooperzzy

这个格式怎么来的?

wenshao avatar Jun 30 '24 05:06 wenshao

自动化测试构建得到的,日-月-年主要是国外的使用方式,然后发现在1.2.83上居然也能够正常解析。

Cooperzzy avatar Jun 30 '24 09:06 Cooperzzy

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

wenshao avatar Jul 14 '24 14:07 wenshao