例如前端传值,"produceTime": "1521770064" 后端接收用 Date produceTime; 反序列化后日期不正确,测试13位时间戳可用
[alibaba/fastjson]Unit十位时间戳如何反序列化成DATE对象
回答
我也碰到了,请问解决了吗
JAVA时间戳是13位的,识别不了10位的,需要自己处理。
https://github.com/alibaba/fastjson/releases/tag/1.2.56 新版本已经支持,配置
JSONField(format="unixtime")
您好,我在1.2.58的版本依然遇到了这个问题。看了下源码:
if (lexer.token() == JSONToken.LITERAL_INT) { long millis = lexer.longValue(); lexer.nextToken(JSONToken.COMMA); if ("unixtime".equals(format)) { millis *= 1000; } val = millis; } else if (lexer.token() == JSONToken.LITERAL_STRING) { ... }
也就是说现在只在{"time": 1521770064}的case下支持,不能在{"time": "1521770064"}的case下支持,这个能也支持下吗?谢谢~
@wenshao 我遇见和楼上同样的问题您好,我在1.2.58的版本依然遇到了这个问题。看了下源码: if (lexer.token() == JSONToken.LITERAL_INT) { long millis = lexer.longValue(); lexer.nextToken(JSONToken.COMMA); if ("unixtime".equals(format)) { millis *= 1000; } val = millis; } else if (lexer.token() == JSONToken.LITERAL_STRING) { ... } 也就是说现在只在{"time": 1521770064}的case下支持,不能在{"time": "1521770064"}的case下支持,这个能也支持下吗?谢谢~