Spring boot JPA :Date 类型的日期时间


Spring boot JPA :Date 类型的日期时间

其中一种解决方案:

今天在写微信小程序时,发现显示时间的地方显示了时区,对于用户来说显示 “yyyy-MM-dd HH:mm:ss” 该格式即可,但是微信小程序又要写格式化时间的代码,查找资料的时候发现JPA提供格式化的注释代码如下:

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

完整代码如下:

import com.fasterxml.jackson.annotation.JsonFormat;//这个是导入该注释的包
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

@Entity
@Data
public class Orders {
    @JsonSerialize(using = ToStringSerializer.class)
    @Id
    @Column(name = "order_id")
    private Long orderId;
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")//放在需要格式化的字段上,返回的值便从
    private Date order_time;
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date receive_time;
}

下单时间没有加该注释,领取时间加上了该注释,可以看见时间进行了格式化


还有一种解决方案:

使用hibernate jpa 注解 @Temporal(XXX)格式化时间日期
有三个格式化模式:
1.只显示日期

@Temporal(TemporalType.DATE)
 @Column(name = "applyDate", nullable = false, length = 10)
 public Date getApplyDate() {
  return applyDate;
 }

在页面端取值:2011-04-12

2.只显示时间

@Temporal(TemporalType.TIME)

在页面端取值:22:50:30

3.日期和时间(默认)

@Temporal(TemporalType.TIMESTAMP)

在页面端取值:2011-04-12 22:51:34.0

要注意第三种后面会带.0所以我采用了本文章的第一种方案

大家一起加努力吧ヾ(•ω•`)o


文章作者: mark_joker
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 mark_joker !
  目录