情况
因为数据库中保存的是无时区的时间格式,所以在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)
|