问题描述
在开发的时候,有String类型转换为Date类型,加了个小时,然后再转换成String类型,这时候发生了时间精度丢失的问题。
比如:“2022-07-25 14:00:00"转换后就成了"2022-07-24 02:00:00”
应该是24h制变成了12h制
问题原因
排查了后没在网上找到相关丢失精度问题,再仔细排查代码后,发现:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
我的日期格式,在小时这一截,是小写的,即"hh",而网上几乎都是大写"HH"
修改日期格式,问题解决
时间转换相关补充
// 设立初试时间
String startTime = "2022-07-25 14:00:00";
// 设立增加时间
Double addTime = 4.000;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String类型转换为Date类型
Date date = formatter.parse(startTime);
// 增加时间
Date date2 = addHour(date, addTime.intValue());
System.out.println("第一个时间" + date);
// Date格式转换为String格式
System.out.println("第二个时间" + formatter.format(date));
System.out.println("第三个时间" + formatter.format(date2));