情况
因为数据库中保存的是无时区的时间格式,所以在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
原因
使用的时间格式化 配置错误导致的。
k
本文主要介绍了在Java中使用SimpleDateFormat转换时区时遇到的问题,即时间加8小时后出现24点导致无法入库。问题源于配置的日期格式不正确,kk会导致24小时制显示。解决方案是将格式改为HH,避免24点问题,修正后的代码能正确处理时间转换。
订阅专栏 解锁全文
1199

被折叠的 条评论
为什么被折叠?



