// 设置jackson时间反系列化格式
SimpleModule module = new SimpleModule();
module.addDeserializer(Date.class, new DateDeserializer());
this.registerModule(module);

时间反序列化

public class DateDeserializer extends JsonDeserializer<Date> {

    private static final List<String> formarts = new ArrayList<String>(4);
static{
formarts.add("yyyy-MM");
formarts.add("yyyy-MM-dd");
formarts.add("yyyy-MM-dd hh:mm");
formarts.add("yyyy-MM-dd hh:mm:ss");
} @Override
public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
String source = p.getText().trim();
if ("".equals(source)) {
return null;
}
if(source.matches("^\\d{4}-\\d{1,2}$")){
return parseDate(source, formarts.get(0));
}else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
return parseDate(source, formarts.get(1));
}else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
return parseDate(source, formarts.get(2));
}else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
return parseDate(source, formarts.get(3));
}
else if(source.matches("^\\d{13}$")){//毫秒
return new Date(Long.parseLong(source));
}
else if(source.matches("^\\d{10}$")){//秒
return new Date(Long.parseLong(source) * 1000);
}
else {
throw new IllegalArgumentException("Invalid Date value '" + source + "'");
} } /**
* 功能描述:格式化日期
* @param dateStr String 字符型日期
* @param format String 格式
* @return Date 日期
*/
public Date parseDate(String dateStr, String format) {
Date date = null;
try {
DateFormat dateFormat = new SimpleDateFormat(format);
date = (Date) dateFormat.parse(dateStr);
} catch (Exception e) {
}
return date;
}
}

最新文章

  1. mysql获取一个表中的下一个自增(id)值的方法
  2. python在windows下获取cpu、硬盘、bios、主板序列号
  3. Visual-Studio-2015-Cheat-Sheet Visual Studio 2015 快捷键列表
  4. Java多线程与并发库高级应用-同步集合
  5. JAVA学习中Swing部分JDialog对话框窗体的简单学习
  6. LSMW应用
  7. 【转】阿里2015校招面试回忆(成功拿到offer)
  8. linux怎么运行.SH文件
  9. bzoj 1226 [SDOI2009]学校食堂Dining(状压DP)
  10. sql数据库之间数据的转录
  11. vs2013搭建团队版本控制 TFS、SVN
  12. 用200行Python代码“换脸”
  13. 如何在linux如何安装nginx服务器
  14. bzoj 4542: [Hnoi2016]大数
  15. springmvc 项目完整示例03 小结
  16. python pdfkit html转pdf响应式轮子 django例
  17. linux下部署tomcat 上线jpress博客系统
  18. Yet Another Maxflow Problem CodeForces - 903G (最小割,线段树)
  19. centOS7安装Composer
  20. redis设置key总结

热门文章

  1. 子元素使用position:fixed,导致他的宽度不能和父元素保持一致的解决方案
  2. mysql服务删除成功,依然存在
  3. device supports x86 but apk only supports armeabi-v7a问题解决
  4. redhat7.6 httpd 匿名目录 目录加密 域名跳转
  5. php 基础 php获取前一天,前一个月,前一年的时间
  6. 关于定时执行任务:Crontab的20个例子
  7. Jquery+ajax模板
  8. 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数
  9. Educational Codeforces Round 72 (Rated for Div. 2)C(暴力)
  10. Codeforces Round #580 (Div. 2)D(思维,Floyd暴力最小环)