今天遇到一个比较奇葩的问题。
我请求报文的时间是字符串"2018-06-25 17:57:54"
到了controller用@RequestBody解析后时间变成了Mon Jun 25 00:00:00 CST 2018
时分秒被狗吃了!
而我的JsonFormat也指定了时分秒,按理说不会出现这样的问题。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
于是我开始debug。
断点到:
org.springframework.web.servlet.mvc.method.annotation。AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters.196行时,
发现转换器genericConverter的实现类是:
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
确实是jackson解析的,所以用JsonFormat应该没问题。
在com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.ensureLoaded方法开始读取请求的body到_inputBuffer数组。
查看这时读取的请求报文,时间也是正常的,带时分秒