[BUG] DateTimeParseException at JSON.parseObject
- Dominant language
- Java
- Stars
- 4.4k
- Forks
- 613
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 6
Description
### 问题描述
以下代码 fastjson1.x 无问题, fastjson2 在JSON.parseObject报错
### 环境信息
- OS信息: [MacOS 12.7.4 M1 Pro 16 GB]
- JDK信息: [Openjdk 17.0.6]
- 版本信息:[Fastjson2 2.0.51]
### 重现步骤
```java
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSON;
import org.junit.jupiter.api.Test;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class Issue1711_534 {
@Test
public void testExtraParseMethod() {
Map map = new HashMap();
map.put("now", "00000000");
// Hutool BeanUtil
final MyBean bean = BeanUtil.mapToBean(map, MyBean.class, false, null);
byte[] jsonBytes = JSON.toJSONBytes(bean);
MyBean parsedBean = JSON.parseObject(jsonBytes, MyBean.class);
assertEquals(bean.getNow(), parsedBean.getNow());
}
public static class MyBean {
private Date now;
public Date getNow() {
return now;
}
public void setNow(Date now) {
this.now = now;
}
@Override
public String toString() {
return "MyBean{" +
"now=" + now +
'}';
}
}
}
```
### 相关日志输出
java.time.format.DateTimeParseException: -0001-11-28T00:05:43[Asia/Shanghai]
at com.alibaba.fastjson2.util.DateUtils.parseZonedDateTime(DateUtils.java:6232)
at com.alibaba.fastjson2.JSONReader.readMillisFromString(JSONReader.java:1609)
at com.alibaba.fastjson2.JSONReader.readDate(JSONReader.java:1410)
at com.alibaba.fastjson2.reader.ORG_1_1_MyBean.readObject(Unknown Source)
at com.alibaba.fastjson2.JSON.parseObject(JSON.java:1503)
Contributor guide
Research direction
Start by running the provided JUnit reproducer with Java 17 and fastjson2 2.0.51. Inspect the stack-traced paths in DateUtils.parseZonedDateTime, JSONReader.readMillisFromString, and JSONReader.readDate; done means the MyBean round trip completes without DateTimeParseException and preserves bean.getNow().
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100