Java后台接收时间为什么要用@DateTimeFormat处理?
问题:最近一次在跟前台对接时间类型的字段出现了问题,我用postman传输时间到后台可以正常接收到时间,但是前台传输过来的时间却无法正确的传输到后台报Failed to convert from type [java.lang.String] to type [@com.fasterxml.jackson.annotation.JsonFormat java.util.Date] for value '2019-05-20'之类的错误
。
解析:网络中传输的所有数据都是使用字符串传输的。时间从postman传输到Java的Date类型不需要转换,因为postman在传输的时候会对时间做处理,转成时间戳,而java是可以直接把时间戳转换成对应的Date类型的。至于直接从前端传输的时间,都会先转换成字符串传给Java,如果在Java中不对传过来的时间字符串做处理的话会报类型转换的错误。可以使用@DateTimeFormat(Pattern = "yyyy-MM-dd")来将时间转换为Date类型。