【发布时间】:2016-06-29 17:51:28
【问题描述】:
在java中获得最准确的系统时间(小时分钟和秒)的最佳方法是毫秒。我一直在研究时钟、日期和日历对象。我希望能够以最准确的系统时间为数据包添加时间戳,并通过网络发送(如果可能,精确到 Milli 甚至 NanoSeconds)。
【问题讨论】:
-
系统时钟的准确度取决于系统,而不是 Java - 在大多数平台上,您希望的最佳值是 15 毫秒左右。
Instant.now()会给你当前时间。 -
@BoristheSpider 我确实也看过 Instant.now() 但它只给了我精确到小数点后三位的准确性。如果我使用日历对象并在其上调用 getTimeInMillis(),它会给我更高的准确性。所以我很困惑。
-
小数点后三位什么?
Instanthas nanos。但正如我上面所说,特定时间戳的单位是完全不相关的,您的操作系统可能会以 10 毫秒为单位进行记录,因此您的时间戳是否以毫秒/微/纳米/皮秒为单位没有意义。 -
@BoristheSpider 这就是它的内容。 “2016-06-29T17:54:32.919Z”所以秒计数器的小数点后三位。这也是UTC,我猜我看不到获取本地时间的方法。另外,这次是否有快照,以便我可以保存它并对这个时间对象执行操作?
-
Instant的默认String表示如何影响任何事情?您也可以将其格式化为只有一年。请请在进一步发布之前请阅读至少一个教程。
标签: java systemtime