一般,做数据库表设计时,很多情况下,我们都至少需要一个日期字段来记录操作相关。

而这种表示日期的字段,我们使用 datetime 类型比较多,但是如果使用 datetime 类型,直接前端拿日期时,我们会发现拿到日期格式是 2022-11-20T11:10:00.000+00:00 这种的,但我们一般都需要 2022-11-20 21:26:44 这种精确到时分秒的格式。

经过查找相关方法,下面给出就我所知最简单的方法:

  1. 数据库表字段类型使用 datetime

    数据库使用 datetime 类型,前端日期显示问题

  2. 实体类中对应的日期属性使用 java.util.Date,不要使用 java.sql.Date

  3. 实体类中对应的日期属性上使用 @JsonFormat 注解,格式化日期,时间戳格式 yyyy-MM-dd HH:mm:ss,并指定时区(千万注意,指定的 GMT+8 之间不要有空格!)

    /**
    * 时间戳
    */
    @Column(name = "timestamp")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") //后端注解格式化日期
    private Date timestamp;
    
  4. 以上,在前端拿数据的时候就可以拿到 2022-11-20 19:10:00 此种标准格式的时间戳。

发表回复