如何在Java.time中将LocalDateTime的精度设置为纳秒?

2023-11-22

根据java.time 文档,java.time应该能够以纳秒精度呈现 LocalDateTime 或 LocalTime ,但是当我运行时LocalDateTime.now()打印出来,只显示3位数字,而不是9位。

像这样:

2016-08-11T22:17:35.031

有没有办法获得更高的精度?


我假设你只是使用LocalDateTime.toString(), 在这种情况下文档 reads:

使用的格式将是输出时间的完整值的最短格式,其中省略的部分隐含为零。

如果您希望显示其他数字,即使它们是零,您也需要创建一个DateTimeFormatter并使用它来代替:

DateTimeFormatter formatter =
    DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSS");

System.out.println(LocalDateTime.now().format(formatter));

更远,LocalDateTime.now()使用系统默认值Clock它仅保证具有毫秒精度,但可以使用更高分辨率的时钟(如果可用)。您的平台可能没有可用于 JRE 且分辨率高于毫秒的时钟。

Update- 您还可以创建一个LocalDateTime with LocalDateTime.of()验证纳秒是否已存储并将包含在默认值的返回值中LocalDateTime.toString() method:

LocalDateTime when =
    LocalDateTime.of(2016, Month.AUGUST, 12, 9, 38, 12, 123456789);

System.out.println(when);

上面的输出将是:



2016-08-12T09:38:12.123456789
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java.time中将LocalDateTime的精度设置为纳秒? 的相关文章

随机推荐