Java 数据库时间返回前端显示错误(差8个小时)

文章介绍了如何在Java中使用@JsonFormat和@DateTimeFormat处理日期格式,通过自定义CustomDateTimeSerializer将ISO日期转换为Data格式,以及解决双向转换中的时区问题。
摘要由CSDN通过智能技术生成

@JsonFormat 与 @DateTimeFormat 使用

参考本篇文章 @JsonFormat 与 @DateTimeFormat 使用

0 可能错误截图

在这里插入图片描述

1 在属性上加自定义Json返回注释 @JsonSerialize

    @TableField(value = "create_time")
    @JsonSerialize(using = CustomDateTimeSerializer.class)
    private Date createTime;

2 新建实体类 CustomDateTimeSerializer

public class CustomDateTimeSerializer extends JsonSerializer<Date>{
	@Override
	public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers)
			throws IOException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
		gen.writeString(sdf.format(value));  
	}
}

3 前端传后端格式转换(ISO 日期格式)转(Data)

在这里插入图片描述

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

4 一个注释解决双端转化问题

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值