LocalDateTime使用中遇到的问题

在使用LocalDateTime时遇到了精度问题,设置为23:59:59后仍会进位到次日0点。这可能与数据库的datetime或timestamp类型有关。解决方法是精确到毫秒,即withHours(23).withMinutes(59).withSeconds(59).withNano(0)。此外,LocalDateTime通过Jackson序列化时因' T '字符导致问题,需要自定义序列化方式来兼容。
摘要由CSDN通过智能技术生成
  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;

比如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.LocalDateT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值