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_newsselect>

2.逻辑层处理
2.1 @JsonSerialize使用
2.1.1返回前端日期类型为String
    自定义jsonSerializer并将日期转化为符合格式的字符串

public class Date2StringJsonSerializer extends JsonSerializer<String> {// 字段类型为string时处理方式@Overridepublic 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时的处理方式@Overridepublic 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小时.
    如果有其他的处理方式,欢迎小伙伴评论区留言!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部