ObjectMapper转换时包含日期会报错

ObjectMapper转换为实体时,对于时间的格式化处理是调用自己的StdDateFormat类来实现日期格式话的,此类有

 "yyyy-MM-dd'T'HH:mm:ss.SSSZ";

"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";

"yyyy-MM-dd";

"EEE, dd MMM yyyy HH:mm:ss zzz";

四种格式化类型,而我们平时使用日期都是"yyyy-MM-dd HH:mm:ss"类型的偏多,

这时转换肯定抛出异常-----------------

org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2012-12-10 12:23:54': not a valid representation (error: Can not parse date "2012-12-10 12:23:54": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
 at [Source: java.io.StringReader@e8e86; line: 1, column: 19] (through reference chain: zz.housework.entity.Staff["occupationDate"])

//----------------------------------------------------

这时我们需要在objcetMapper中注册自己的日期转换工具

    // 获取mapper对象
            ObjectMapper mapper = new ObjectMapper();
            // ==========自定义日期格式========

          获取实体序列化配置对象
            DeserializationConfig cfg = mapper.getDeserializationConfig();

        设置自己的日期转换工具-其中MyDateFormat为我自己继承自SimpleDateFormat的类,以便处理“yyyy-MM-dd HH:mm:ss”与"yyy-MM-dd"两种日期格式
            cfg.setDateFormat(new MyDateFormat());

           注入mapper中
            mapper = mapper.setDeserializationConfig(cfg);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值