SimpleDateFormat 处理带有微秒的字符串转化为时间会导致不准确
下面是代码示例:
public static void main(String[] args) throws Exception{
String timeStampStr = "2024-07-04 10:11:34.800017";
System.out.println("带毫秒的时间格式: " + timeStampStr);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
Date simpleDateFormatDate = simpleDateFormat.parse(timeStampStr);
System.out.println("使用SimpleDateFormat转换后: " + simpleDateFormatDate);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
LocalDateTime formatterDate = LocalDateTime.parse(timeStampStr, formatter);
System.out.println("使用DateTimeFormatter转换后: " + formatterDate);
}
运行的结果截图
我们可以发现原来的时间是 2024-07-04 10:11:34.800017 ,经过SimpleDateFormat处理后变成了2024-07-04 10:21:54,而用DateTimeFormatter 处理后的结果是 2024-07-04 10:11:34.800017,转换的结果正确