首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精确系统时间

精确系统时间
EN

Stack Overflow用户
提问于 2016-06-29 17:51:28
回答 2查看 1.3K关注 0票数 3

在java中获得最准确的系统时间(小时、分钟和秒)的最佳方法是什么?我一直在查看时钟、日期和日历对象。我希望能够用最精确的系统时间对数据包进行时间戳,并通过网络发送它(如果可能的话精确到Milli甚至NanoSeconds )。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-29 19:37:09

Java 9

java.time框架支持高达纳秒分辨率的值。这意味着十进制小数秒的9 (9)位数。

Java 9和更高版本中,Clock的新实现可以捕捉到到该纳秒分辨率的当前时刻。但是“你的里程可能会不同”。实际分辨率和实际精度取决于主机硬件时钟能力。

代码语言:javascript
复制
Instant instant = Instant.now();

2016-01-02T12:34:56.123456789Z

Java 8

与Java9一样,java.time类支持纳秒解析。

但是,目前的时刻只捕捉到毫秒的分辨率。这意味着只有三(3)位或更少的小数秒。这一限制是由于用于Clock的遗留实现造成的。

Java 6和7

旧的日期-时间类最初与最早版本的Java捆绑在一起,只支持毫秒的解析。这包括java.util.Datejava.util.Calendarjava.util.GregorianCalendar。这些旧类的设计也很糟糕,令人困惑和麻烦。避开他们。

java.time的许多功能都是在三次-支持项目中移植的,并进一步适应了ThreeTenABP项目中的Android。

据我所知,它们依赖于相同的遗留实现,解析时间仅为毫秒。

准确性

准确度和精密度总是依赖于您的主机硬件时钟能力。

见问题,现代电脑的内部时钟有多精确?

正如我所理解的,今天的普通计算机硬件,你不能指望当前的时刻将被捕捉到单纳秒的精度。

票数 5
EN

Stack Overflow用户

发布于 2016-06-29 18:11:40

如果你想在纳米秒内获得时间,那么使用system.nanoTime();,这将是最好的

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38106803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档