php婚庆网站,吉祥物设计网站,青岛百度网站建设,自己怎么建立公司网站不会自动转换string与date主要是这个意思#xff0c;前端提交的JSON里#xff0c;日期是一个字符串#xff0c;而对应后端的实体里#xff0c;它是一个Date的日期#xff0c;这两个在默认情况下是不能自动转换的#xff0c;我们先看一下实体实体public class UserDTO {pr…不会自动转换string与date主要是这个意思前端提交的JSON里日期是一个字符串而对应后端的实体里它是一个Date的日期这两个在默认情况下是不能自动转换的我们先看一下实体实体public class UserDTO {private String name;private String email;private Boolean sex;private Double total;private BigDecimal totalMoney;private Date birthday;}客户端提交的json对象{email: null,name: lr,total:3,totalMoney:1,birthday:1983-03-18}服务端收到的实体DTO是正常的而在服务端响应的结果却不是日期而是一个时间戳{name: lr,email: null,sex: null,total: 3.00,totalMoney: 0.0000,birthday: 416793600000}我们看到日期型的birthday在响应到前端还是一个时间戳如果我们希望响应到前端是一个日期那需要为这个DTO实体添加JsonFormat注解public class UserDTO {private String name;private String email;private Boolean sex;private Double total;private BigDecimal totalMoney;JsonFormat(pattern yyyy-MM-dd, timezone GMT8)private Date birthday;}也可以通过配置文件进行设置spring:jackson.date-format: yyyy-MM-ddjackson.time-zone: GMT8jackson.serialization.write-dates-as-timestamps: false这样在服务端向前端响应结果就变成了使用configureMessageConverters方法全局处理springboot2.x可以实现WebMvcConfigurer 接口然后重写configureMessageConverters来达到定制化日期序列化的格式ConfigurationEnableWebMvc //覆盖默认的配置public class WebMvcConfigurerImpl implements WebMvcConfigurer {Overridepublic void configureMessageConverters(List converters) {MappingJackson2HttpMessageConverter jackson2HttpMessageConverter new MappingJackson2HttpMessageConverter();ObjectMapper objectMapper new ObjectMapper();// 时间格式化objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);objectMapper.setDateFormat(new SimpleDateFormat(yyyy-MM-dd));//只能是一个日期格式化多个会复盖}}如上图所示如果希望为getup字段添加时分秒需要在DTO上使用JsonFormat(patternyyyy-MM-dd HH:mm:ss)注解即可。