Vue3
<el-date-picker v-model="form.receiveDate"
format="YYYY/MM/DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
type="datetime"
placeholder="Enter Receive Date"
size="default" />
SpringBoot3
public AjaxResponse saveOrUpdate(@RequestBody Receipt receipt)
@RequestBody 通过Jackson序列化参数后Time部分丢失,以及Time Zone 错误。
解决方法一
在对应的字段上添加强制类型转换
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public Date receiveDate;
解决方法二
@Configuration
public class SerializerJacksonBean {
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
通过这一行转化
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
return objectMapper;
}
}
Jackson 配置时区
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false