fastjson
fastjson copied to clipboard
UTC时区下,加了SerializerFeature.UseISO8601DateFormat后,时间反序列化失败的问题
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);
}
https://github.com/alibaba/fastjson2/releases/tag/2.0.12 问题已经修复,请用2.0.12版本