练习:将从表读出来的时间戳除以1000(java读时间戳会多出3个000)jackson包 实现

entity

  1. @Entity
  2. @DynamicUpdate //自动更新日期
  3. @Data //get/set
  4. public class OrderDetail {
  5.  
  6. @Id
  7. private String detailId;
  8.  
  9. /**订单id**/
  10. private String orderId;
  11.  
  12. /**商品id**/
  13. private String productId;
  14.  
  15. /**商品名**/
  16. private String productName;
  17.  
  18. /**商品价格**/
  19. private BigDecimal productPrice;
  20.  
  21. /**购票数量**/
  22. private Integer productQuantity;
  23.  
  24. /**商品图片**/
  25. private String productIcon;
  26.  
  27. /**时间戳**/
  28. private Date createTimestamp;
  29.  
  30. /**时间戳**/
  31. private Date updateTimestamp;
  32. }

  

java读出的数据格式,时间戳会精确到毫秒,多出3个000

  1. {
  2. "statusCode": 0,
  3. "message": "返回成功",
  4. "data": [{
  5. "orderId": "1542785381425923730",
  6. "buyerName": "王五",
  7. "buyerPhone": "15605852476",
  8. "buyerAddr": "北京王府井",
  9. "buyerOpenid": "110112",
  10. "buyerAmount": 4.40,
  11. "orderStatus": 0,
  12. "payStatus": 0,
  13. "createTimestamp": 1542794276000,
  14. "updateTimestamp": 1542794276000,
  15. "orderDetailList": null
  16. }]
  17. }

  

解决方法:

1.继承com.fasterxml.jackson.databind.JsonSerializer;的类,并复写:serialize(T.....)方法

  1. public class DateToTimestamp extends JsonSerializer<Date> {
  2. @Override
  3. public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
  4. jsonGenerator.writeNumber(date.getTime() / 1000);
  5. }
  6. }

  

2.在实体类上用上新建的 DateToTimestamp 类的注解

  1. @Entity
  2. @DynamicUpdate //自动更新日期
  3. @Data //get/set
  4. public class OrderMaster {
  5.  
  6. @Id
  7. private String orderId;
  8.  
  9. /**买家名字**/
  10. private String buyerName;
  11.  
  12. /**买家手机**/
  13. private String buyerPhone;
  14.  
  15. /**买家地址**/
  16. private String buyerAddr;
  17.  
  18. /**用户openid**/
  19. private String buyerOpenid;
  20.  
  21. /**订单金额**/
  22. private BigDecimal buyerAmount;
  23.  
  24. /**订单状态, 默认状态0新订单**/
  25. private Integer orderStatus = OrderStatusEnum.NEW.getCode();
  26.  
  27. /**支付状态, 默认状态0等待支付**/
  28. private Integer payStatus = PayStatusEnum.WAIT.getCode();
  29.  
  30. /**
  31. * 此注解表示时间戳除以1000
  32. */
  33. @JsonSerialize(using = DateToTimestamp.class)
  34. private Date createTimestamp;
  35.  
  36. /**
  37. * 此注解表示时间戳除以1000
  38. */
  39. @JsonSerialize(using = DateToTimestamp.class)
  40. private Date updateTimestamp;
  41.  
  42. }

  

练习:将从表读出来的时间戳除以1000(java读时间戳会多出3个000)用jackson包 实现的更多相关文章

  1. paip.日期时间操作以及时间戳uapi php java python 总结

    paip.日期时间操作以及时间戳uapi php java python 总结 ///uapi Date 函数 | Day 函数 | Hour 函数 | Minute 函数 | Month 函数 | ...

  2. java获取时间戳的方法

    JAVA 获取当前月的初始时间的时间戳 public static long getMonthFirstDay() { Calendar calendar = Calendar.getInstance ...

  3. php日期转时间戳,指定日期转换成时间戳

    写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储.处理方便,但 是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么 ...

  4. Java 存储时间戳的几种方式

    有时需要记录一下数据生成时间的时间戳,精确到秒,这里记录一下java存储时间戳字符串的几种方式 1.DateFormat private static final SimpleDateFormat s ...

  5. Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间

    ylbtech-Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间 1.返回顶部 1. Java 实例 - 时间戳转换成时间  Java 实例 以下实例演示 ...

  6. java 获取时间戳的三种方式

      java 获取时间戳的三种方式 CreationTime--2018年7月13日16点29分 Author:Marydon 1.实现方式 方式一:推荐使用 System.currentTimeMi ...

  7. MapReduce实现两表的Join--原理及python和java代码实现

    用Hive一句话搞定的,可是有时必需要用mapreduce 方法介绍 1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是很常见且很耗时的.而在HADOOP中进行JOIN操作.相同常见且耗时, ...

  8. Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package

    Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package 1. 统计的lib jar 列表1 2. Code3 3. 常用包名按找字母排序(2000个)4 ...

  9. 【问题记录】MySQL中时间戳转日期格式和Java中时间戳转日期格式偶尔不一致

    背景: MySQL的某个字段存放着一些时间戳格式的时间. 问题描述: Java程序将MySQL中的时间戳字段取出来,在Java程序中转成yyyy-MM-dd HH:mm:ss格式的时候,偶尔会出现转化 ...

随机推荐

  1. js之 data-*自定义属性

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. TCP 的那些事儿(上)(转)

    原文地址:http://kb.cnblogs.com/page/209100/ TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面.所以学习TCP本身是个比较痛苦的过 ...

  3. python ---12 生成器 推导式

    一.生成器 函数中有yield 的就是生成器函数(替代了return) 本质就是迭代器   一个一个的创建对象     节省内存 1.创建生成器 最后以yield结束 1. 通过⽣成器函数   2. ...

  4. Restful framework【第十一篇】url路由控制

    基本使用 -url控制 -传统的url配置 url(r'^books/$', views.BookView.as_view()), url(r'^books/(?P<pk>\d+)$', ...

  5. 编译openwrt时总是报错“staging_dir/target-aarch64_generic_glibc/stam$/.tools_compile_yynyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynny' failed”

    1. 详细错误如下: tools/Makefile:146: recipe for target '/home/jello/openwrt/staging_dir/target-aarch64_gen ...

  6. 彻底地/ 终于地, 解决 关于apache 权限的问题了:: 修改 DocumentRoot后的 403错误: have no permission to access / on this server

    目录的权限都 应该设置 为 drwxr_xr_x, 即755, 而html下的文件的权限设置为; 644 即可! -x 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性. -w权限, ...

  7. [转]抓取当前登录用户登录密码的工具:mimipenguin

    Github项目地址 前有Mimikatz,今有mimipenguin,近日国外安全研究员huntergregal发布了工具mimipenguin,一款Linux下的密码抓取神器,可以说弥补了Linu ...

  8. 引入jquery利用Vue生命周期的钩子函数mounted操作DOM

    html <div id="app"> <div>{{message}}</div> </div> js var vm = new ...

  9. Linux 下上手 STC89C52RC

    第一次接触单片机,自然选择了简单的51单片机.然而我的操作系统是 Linux .在 Windows 下上手51似乎很容易.但是 Linux 上搭建 51 开发环境不是很顺. 那么谈谈 Linux 我如 ...

  10. UVa 11488 超级前缀集合(Trie的应用)

    https://vjudge.net/problem/UVA-11488 题意: 给定一个字符串集合S,定义P(s)为所有字符串的公共前缀长度与S中字符串个数的乘积.比如P( {000, 001, 0 ...