You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDK 1.8中LocalDateTime增加毫秒的实现及高版本API疑问

LocalDateTime 增加毫秒值的实现及JDK版本支持说明

一、plusNanos(1000000)替代方式的正确性

你采用的plusNanos(1000000)来为LocalDateTime增加1毫秒的方式是完全正确的。
因为1毫秒 = 1000000纳秒,调用该方法后,LocalDateTime的纳秒部分会准确增加1000000,对应毫秒位加1。从你的测试结果也能验证这一点:初始时间为2022-01-01 00:00:00.123,执行增量操作后变为2022-01-01 00:00:00.124,完全符合预期。

你的测试代码如下:

DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
LocalDateTime ldt = LocalDateTime.parse("2022-01-01 00:00:00.123",f);
        
System.out.println(ldt.format(f));
        
ldt = ldt.plusNanos(1000000);
        
System.out.println(ldt.format(f));

输出结果:

2022-01-01 00:00:00.123
2022-01-01 00:00:00.124

二、后续JDK版本的直接方法支持

从JDK 9开始,LocalDateTime类新增了直接的plusMillis(long millis)方法(注意方法名是plusMillis,而非plusMillisecond),可以直接传入毫秒数完成时间增量操作,无需再通过纳秒转换。例如:

ldt = ldt.plusMillis(1); // 直接增加1毫秒

内容的提问来源于stack exchange,提问作者goguma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:25:00