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小时.
    如果有其他的处理方式,欢迎小伙伴评论区留言!


版权声明:本文为weixin_43401380原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。