mybatis返回日期有.0的处理方案

1.数据库层处理:date_format函数

2.逻辑层处理

     2.1 @JsonSerialize使用
        2.1.1 返回日期数据类型为string
        2.1.2 返回日期数据类型为date
     2.2@JsonFormat使用

    mybatis中对于日期处理可能会出现.0的情况,下面对此类问题处理方案进行汇总说明.

1.数据库处理:date_format

    sql中进行格式化处理:date_format(create_time, ‘%Y-%m-%d %H:%i:%s’);

 <select id="findNews" resultType="com.it.txm.demo.News">
        select id,title,date_format(create_time, ‘%Y-%m-%d %H:%i:%s’) from find_news
    </select>

2.逻辑层处理

2.1 @JsonSerialize使用

2.1.1返回前端日期类型为String

    自定义jsonSerializer并将日期转化为符合格式的字符串

public class Date2StringJsonSerializer extends JsonSerializer<String> {

	// 字段类型为string时处理方式
    @Override
    public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        gen.writeString(value.substring(0,16));
    }
}

    实体类中时间字段添加@JsonSerialize并指定自定json序列化器

public class News {
    private String id;
    private String title;
    @JsonSerialize(using = Date2StringJsonSerializer.class)
    private String createTime;
    }

    

2.1.2返回前端日期类型为date

    自定义jsonSerializer并将日期转化为符合格式的日期

public class Date2DateJsonSerializer extends JsonSerializer<Date> {

    private SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");

// 字段类型为date时的处理方式
    @Override
    public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        String format = simpleDateFormat.format(value);
        gen.writeString(format);
    }

}

    实体类中时间字段添加@JsonSerialize并指定自定json序列化器.

public class News {
    private String id;
    private String title;
    @JsonSerialize(using = Date2DateJsonSerializer .class)
    private Date createTime;
    }

    

2.2@JsonFormat使用

public class News {
    private String id;
    private String title;
	@JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm",timezone="GMT+8")
    private Date createTime;
// 省略get/set
    }

    @JsonFormat作用是将数据库日期字段信息按照时间格式转化为date类型.timezone=“GMT+8”,我们是在东八区,@JsonFormat当地时间差8小时.
    如果有其他的处理方式,欢迎小伙伴评论区留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卖柴火的小伙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值