前后端时间参数对接

2022/1/19 6:04:35

本文主要是介绍前后端时间参数对接,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前后端时间参数对接

对接方式一

前端用指定pattern格式的时间字符串,后端用Date或者LocalDateTime类型的时间

方案:使用@JsonFormat与@DateTimeFormat注解

使用示例

0 数据对象
@Data
public class TimeParamDto {
​
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern ="yyyy-MM-dd" )
    private Date startDate;
​
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss" )
    private LocalDateTime startDatetime;
    
}
01 前端请求参数

此时是字符串类型

 

02 controller

controller接受到已经由字符串变成Date类型(或者LocalDateTime)

@GetMapping("/date-test")
public TimeParamDto paramTimeGetTest(TimeParamDto dto){
        System.out.println(dto.getStartDate());//Thu Dec 23 00:00:00 CST 2021
        System.out.println(dto.getStartDatetime());//2021-12-23T12:12:12
        return dto;
    }
03 响应体:

由Date类型变成字符串,方便展示

{
  "startDate": "2021-12-22",
  "startDatetime": "2021-12-23 12:12:12"
}

 

注释详解

@DateTimeFormat

入参,用于格式化前端传给服务器字符串类型的时间

//pattern可以自定义
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat

出参,用于服务器传给前端json数据时对Date类型时间进行的格式化

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
注意事项:
  • pattern就表示需要转变的格式,timezone表示处在的时区(国内是东八区)

  • get请求,@DateTimeFormat和@JsonFormat注解可以同时使用,时间格式也可以不一致,推荐

  • post请求时,如果同时使用@DateTimeFormat和@JsonFormat注解,他们的时间格式必须一样,不推荐

  • 注意加上@Data注解



这篇关于前后端时间参数对接的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程