目前 LocalDateTime、LocalDate 可以正常输出了,但 LocalTime 带毫秒。 通常我们会输出不带毫秒的LocalTime,所以请求修改默认的LocalTime,或者支持配置针对LocalTime的格式化。 我不想在类或格式化时单独对这一个属性进行配置,因为我在WebMvcConfig中会配置FastJsonMessageConvert,所以希望可以统一设置。
[alibaba/fastjson]希望可以定义多个DateForamt,分别针对LocalDateTime、LocalDate、LocalTime
回答
"2018-05-20 00:50:41" "2018-05-20" "00:50:41.394"
LocalTime 序列化也有问题 LocalTime localTime = LocalTime.parse("09:00:00"); System.out.println(localTime);
会输出09:00, 但是我期望的是标准格式09:00:00 因为fastjson默认是走toString , 但是jdk的LocalTime 的toString如果秒不是大于0的就不会输出
目前 LocalDateTime、LocalDate 可以正常输出了,但 LocalTime 带毫秒。 通常我们会输出不带毫秒的LocalTime,所以请求修改默认的LocalTime,或者支持配置针对LocalTime的格式化。 我不想在类或格式化时单独对这一个属性进行配置,因为我在WebMvcConfig中会配置FastJsonMessageConvert,所以希望可以统一设置。
你可以这样配置 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures( SerializerFeature.WriteDateUseDateFormat ); fastConverter.setFastJsonConfig(fastJsonConfig); fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
或者单一使用 JSON.toJSONString(data, SerializerFeature.WriteDateUseDateFormat));
LocalTime 序列化也有问题 LocalTime localTime = LocalTime.parse("09:00:00"); System.out.println(localTime);
会输出09:00, 但是我期望的是标准格式09:00:00 因为fastjson默认是走toString , 但是jdk的LocalTime 的toString如果秒不是大于0的就不会输出
这个确实一个比较大的坑点,我最近也遇到了,稍后提一个merge request