[alibaba/fastjson]为啥忽略 1970-01-01 之前的时间处理?

2024-05-23 450 views
9

TypeUtils.java里面有这么一段: if(longValue <= 0){ throw new JSONException("can not cast to Date, value : " + value); // TODO 忽略 1970-01-01 之前的时间处理? } 为啥要忽略?我们很多老一辈的人生日都是在1970年1月1日以前的,他们注册时填写生日到后端转换总是报错,就你这段报的错误。

回答

0

这个时间以前的没法用时间戳表示吧

5

负数啊,为啥不行?他源码里自己都加了个备注,打了个问号,那为啥不干脆拿掉那个判断?时间范围判断本来就是业务的事情,你一个工具类去处理做啥,而且还是不可配置的,这合适吗?

7

同样的问题 使用JSONObject#getTimestamp方法报错 但使用JSONObject#getDate方法正常

这种限制的理由是为什么,getDate和getTimestamp出现这种差异的原因是什么

8

我在使用1.1.41版本时发现有这个问题,1.2.47版本中源码已经改了,不确定在哪个版本改的,但是1.2.47已经能支持负的时间戳了。

0

请问有人正在处理这个问题吗,我对这个issue感兴趣,我将在最近的几个月内尝试处理这个bug。