LocalDateTime使用中遇到的问题

  1. LocalDateTime和数据库的精度问题。

开发中发现每次设置存入数据库的时间为withHour(23). withMinutes(59). withSeconds(59) ;结果存入库有0点0分0秒的情况。经过查看日志发现ms进位了。(可能和数据库类型有关系,忘记了是datetime还是timestamp了,有兴趣的自己看下是不是两个数据类型都会出现这个问题)

INSERT INTO `coupon_records` (  `id`, `start_time`,  `end_time`)
VALUES('999','2019-07-26 23:59:59','2019-07-26 23:59:59.876');

SELECT * from `coupon_records` WHERE `coupon_id` = 999;
image

比如2019年7月26日23点59分59秒876毫秒存到数据库变成了2019年27日0点0分0秒。

需withHour(23). withMinutes(59). withSeconds(59) .withns(0);

2.序列化问题

LocalDateTime用Hession序列化没问题,jackson序列化有问题,。

JSON parse error: Can not deserialize value of type java.time.LocalDateTime 
from String "2019-07-26 11:25:10.314": Text '2019-07-26 11:25:10.314' 
could not be parsed at index 10;
nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: 
Can not deserialize value of type java.time.LocalDateTime 
from String "2019-07-26 11:25:10.314":Text '2019-07-26 11:25:10.314' 
could not be parsed at index 10 at 
[Source: java.io.PushbackInputStream@9ea12ad;

原因 LocalDateTime 的字符串形式 是 2019-07-26T11:25:10.314,因为中间有个T,有些序列化没有做特殊处理,故不支持。
解决方案,对序列化源码进行扩充,编写符合条件的序列化反序列化方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,459评论 0 9
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,219评论 6 13
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 833评论 0 3
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,397评论 0 6
  • 破天荒地四点多在咳嗽中醒来,开了灯在客厅喝了水,呆坐,习惯性开启简书,发现昨天晚上睡前才看完已关注的简友的文章,现...
    妩语阅读 780评论 11 30