遇到的问题---java---使用SimpleDateFormat进行时区加8小时后出现24点的数据,导致时间异常无法入库
Posted 张小凡vip
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遇到的问题---java---使用SimpleDateFormat进行时区加8小时后出现24点的数据,导致时间异常无法入库相关的知识,希望对你有一定的参考价值。
情况
因为数据库中保存的是无时区的时间格式,所以在java项目中 获取时间数据后 需要加上东八区的时间。
使用代码如下:
public static String timeAdd8Hour(Date date)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss ");
// System.out.println("格式化输出:" + sdf.format(date));
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
// System.out.println("Asia/Shanghai:" + sdf.format(date));
return sdf.format(date);
然后发现有一条数据在数据库中 时间为
2022-03-24 16:00:00.000Z
转换出来的时间为
2022-03-25 24:00:00
与期望值不符合
实际上期望的值应该为
2022-03-25 00:00:00
原因
使用的时间格式化 配置错误导致的。
kk代表的如果有 包含有24的时间显示格式
具体规则如下:
h am/pm 中的小时数(1-12)
H 一天中的小时数(0-23)
k 一天中的小时数(1-24)
K am/pm 中的小时数(0-11)
以上是关于遇到的问题---java---使用SimpleDateFormat进行时区加8小时后出现24点的数据,导致时间异常无法入库的主要内容,如果未能解决你的问题,请参考以下文章