SimpleDateFormat 处理带有毫秒的时间字符串转化为时间不准的问题

SimpleDateFormat 处理带有微秒的字符串转化为时间会导致不准确

下面是代码示例:

java 复制代码
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,转换的结果正确

相关推荐
蚊子码农几秒前
每日一题--C语言指针与内存泄漏:一道小问题的深度复盘
c语言·开发语言
Fanfanaas几秒前
Linux 系统编程 进程篇(一)
linux·运维·服务器·c语言·开发语言·网络·学习
星辰徐哥4 分钟前
ARP缓存表:作用、查看方法与刷新技巧
开发语言·缓存·php
ego.iblacat6 分钟前
lvs 集群部署
开发语言·php·lvs
沐雪轻挽萤8 分钟前
6. C++17新特性-编译期 if 语句 (if constexpr)
开发语言·c++
水云桐程序员11 分钟前
C语言编程基础,输入与输出
c语言·开发语言·算法
程序员张312 分钟前
自定义跨字段校验必填注解
java·后端
爱代码的小黄人13 分钟前
MATLAB中for循环实现递减遍历(通用方法)
开发语言·matlab
weixin_7042660517 分钟前
手机体检预约系统开发解析
java·开发语言
白露与泡影18 分钟前
Java八股文大全(2026最新版)大厂面试题附答案详解
java·开发语言