Spring Boot 序列化date类型

在springboot中我们需要返回json类型的数据,我们只需要在controller的方法中标注上@ResponseBody注解。

如果我们的pojo实体对象有date类型的数据时,序列化之后可能为这个样子:

2018-10-10T01:30:46.000+0000

这肯定不是我们需要展示给客户的样子,那怎么解决这个问题呢?

我们可以在属性字段上加 @JsonFormat注解:

 @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date modifytime;

或者在set方法上面加这个注解:

 @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    public void setModifytime(Date modifytime) {
        this.modifytime = modifytime;
    }

注意这里需要指定时区timezone,不这样的话  得到的时间会比当前时间小8个小时

另外还有一个注解我们需要了解:@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")  

@DateTimeFormat会限制传入参数:

如果标注了@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")  在Modifytime字段上面,则通过表达提交的日期格式也应该是"yyyy-MM-dd hh:mm:ss"  否则会报错

比如我们的pojo:

public class Mypojo {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm" )
    private Date modifytime;

    private String name;

    @Override
    public String toString() {
        return "Mypojo{" +
                "modifytime=" + modifytime +
                ", name='" + name + '\'' +
                '}';
    }

    public Date getModifytime() {
        return modifytime;
    }

    public void setModifytime(Date modifytime) {
        this.modifytime = modifytime;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

我们的controller:

@Controller
public class MyController {

    @RequestMapping(value = "test")
    @ResponseBody
    public Mypojo queryTotalListHisData( Mypojo mypojo) {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String strStartTime = sdf.format(new Date());
        System.out.println("传入的参数:"+mypojo.getModifytime());
        System.out.println(new Date());
        System.out.println(strStartTime);
        System.out.println(mypojo.toString());
        return mypojo;
    }
}

如果不加@DateTimeFormat这个注解,那么我们需要传入Tue Dec 11 20:10:09 CST 2018  这样的一个日期格式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值