0
点赞
收藏
分享

微信扫一扫

spring 参数传递 时间处理


后端承接前端的时间

String
Date 这里就可以用DateTimeFormat 注解
LocalDateTime JsonFormat 注解

JsonFormat

@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
private LocalDateTime gmtModified;

JsonFormat 可以处理前端传递过来的对象也可以处理后端返回到前端的对象

前端返回给后端的对象 DTO

/**
* 发送时间
* */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String sendTime;

DateTimeFormat 是用来处理Date 的注解

解决方案1

全程用Date
承接就是DateFormat
返回就jackson 的JsonFormat

解决方案2

字符串承接 存入数据库之前重写set 方法
返回时 重写get 方法

getBirthday() {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
return birthday.format(dateTimeFormatter);
}

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate local = LocalDate.parse("2019-02-03",dateTimeFormatter);
System.out.println(local);

解决方案3

全程用LocalDateTime 两个注解可以实现生效传递
只能在get 请求用

解决方案4 推荐

​post RequestBody 不需要序列化 fastjson​

@JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8",shape = JsonFormat.Shape.STRING)
private LocalDateTime birthDate;

​​异常 JSON parse error: Cannot deserialize value of type java.time.LocalDateTime​​

注意: 两个pattern 都要一样 否则报错

spring 参数传递 时间处理_json

  1. 不在注解 postman post 请求 会报参数解析错误

参考文档

​​为什么使用LocalDate、LocalTime、LocalDateTime而不是Date​​​​ajax请求后端,日期时间数据直接自动封装进自定义对象​​​​DateTime.ToString() Patterns​​


举报

相关推荐

0 条评论