@DateTimeFormat与@JsonFormat和value-format

2022年11月22日11:26:52

一、时间传值问题

前端时间控件在往后台传值,或者数据库的查到DateTime类型并用java的Date类型接收并返回给前台的时候,往往会出现无法正确接受的问题。这个时候就用到了@DateTimeFormat与@JsonFormat和value-format来解决这些问题了。

二、@DateTimeFormat

该注解主要解决前端时间控件传值到后台Date类属性接收准确的问题,我们可以在需要接收的类中对应的时间类型属性上加上@DateTimeFormat注解,并在注解中加上pattern属性,例如:

@Column(name = "AttendanceDate")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date attendancedate;

随后在前端传入的yyyy-MM-dd HH:mm:ss日期类型就能够按照该种格式进行转义赋值给Date类型。若想按照yyyy/MM/dd的日期格式,则直接修改@DateTimeFormat的pattern属性为对应的日期格式即可,即@DateTimeFormat(pattern = “yyyy/MM/dd”)。

三、@JsonFormat

该注解主要解决后台从数据库中取出时间类型赋予java对象的Date属性值无法在前端以一定的日期格式来呈现,默认返回的是一个带时区的格式串,不符合我们日常要呈现的日期格式。
同样,我们在对应的接收对象时间类型上加上@JsonFormat注解,并在注解中加上pattern属性以及timezone属性,例如:

@Column(name = "AttendanceDate")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date attendancedate;

表示我们从后台数据库查询结果赋予对应的Date java类型为yyyy-MM-dd HH:mm:ss格式,且注意后面的timezone属性,最好加上GMT+8表示我们以东八区时区为准,若读者想用其他时区就可以通过更改timezone属性来改变,从而解决时区不同造成的时间差问题。

四、value-format

value-format是Element-UI时间选择器中的一个用来规范日期格式的属性,例如:

<el-form-item size="small" label="规定时间" prop="attendancedate">
    <el-date-picker
        value-format="yyyy-MM-dd HH:mm:ss"
        v-model="form.attendancedate"
        type="datetime"
        placeholder="选择日期时间">
    </el-date-picker>
</el-form-item>
  • 作者:稳住别慌
  • 原文链接:https://blog.csdn.net/weixin_44979475/article/details/125503937
    更新时间:2022年11月22日11:26:52 ,共 1182 字。