当前位置: 首页 > 面试题库 >

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

钮承恩
2023-03-14
问题内容

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

像这样:

2016-08-11T22:17:35.031

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


问题答案:

我假设您只是在使用LocalDateTime.toString(),在这种情况下,文档显示为:

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

如果您希望显示其他数字(即使它们为零),则需要创建一个DateTimeFormatter并使用该数字:

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

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

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

更新 -您还可以创建一个LocalDateTimewith
LocalDateTime.of()来验证是否存储了纳秒,并将其包含在默认LocalDateTime.toString()方法的返回值中:

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

System.out.println(when);

上面的输出将是:

2016-08-12T09:38:12.123456789


 类似资料:
  • 本文向大家介绍nodejs如何高精度计时(纳秒)?相关面试题,主要包含被问及nodejs如何高精度计时(纳秒)?时的应答技巧和注意事项,需要的朋友参考一下 const start = process.hrtime.bigint(); // 191051479007711n setTimeout(() => { const end = process.hrtime.bigint(); // 1910

  • 问题内容: 我从数据库中得到一个数字,这个数字可能是或。 我需要将数字的小数精度设置为,这会使数字不超过(关于小数)或。 使用PHP 我看到一个问题: 四舍五入数字。我需要一个仅将小数点缩短而不改变其值的函数,而这些值似乎不遵循。 问题答案: 您可以用来实现以下目的: 这将转换为。 但是,如果您只想将小数位数缩短到3,而 不是 四舍五入,则可以执行以下操作: 乍一看可能令人生畏,但是这个概念确实很

  • 我想在C中设置浮点的精度。假设我的代码是 < code>float a = 23.5,b = 24.36浮动c = a b; 如果我发表了这个 它给出:46.86 但我想打印到小数点后一位。怎么做?

  • Cassandra表具有数据类型列,那么如何查看类型的纳秒值? timeuuid: 如何将此timeuuid转换为纳秒级需要一个select语句,如下所示:

  • 问题内容: 我正在使用这些代码在derby数据库中创建表。 我的数据是这样存储的。 但是我希望我的数据像这样存储 我应该如何处理我的数据类型? 问题答案: 使用定义了精度和小数位数的DECIMAL类型: 的代表的允许数目(两个向左和小数POIN的右侧)的总位数,以及表示允许小数的位数。因此,上面的示例定义了一个十进制数字,该数字最多允许5位数字,小数部分为2位数字。

  • 问题内容: 在Java中,我想要一个双精度值并将其转换为a 并以一定的精度打印出它的String值。 它打印出这个巨大的东西: 47.47999999999999687361196265555918216705322265625 并不是 47.48 我进行转换的原因是有时double值将包含很多小数位(即),而将double转换为String时将产生科学计数法。我想以非科学计数法存储String值