gog*_*uma 3 java milliseconds java-time
我想用 LocalDateTime 增加毫秒值。我使用了plusNanos,因为我没有plusmillisecond。我想知道这是否是正确的方法。我使用的是 JDK 1.8。我也想知道以后的版本是否有加毫秒的功能。
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));
Run Code Online (Sandbox Code Playgroud)
2022-01-01 00:00:00.123
2022-01-01 00:00:00.124
Run Code Online (Sandbox Code Playgroud)
添加纳秒是一种完全有效的方法。如果您想要一个更不言自明的解决方案,您可以使用LocalDateTime#plus(long, TemporalUnit):
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.parse("2022-01-01 00:00:00.123", FORMATTER);
localDateTime = localDateTime.plus(1L, ChronoUnit.MILLIS);
// How much you are adding ^ ^ What you are adding
System.out.println(FORMATTER.format(localDateTime));
}
Run Code Online (Sandbox Code Playgroud)
该TemporalUnit参数准确地解释了您要添加到时间戳中的内容,从而使其他可能查看代码的程序员更容易理解您的代码。它还负责幕后的单位转换,因此人为错误的余地较小,并且您的代码不会因数学而混乱。