【发布时间】:2013-01-21 20:43:00
【问题描述】:
由于 Java 文档告诉我,不要使用 System.currentTimeMillis 进行比较,我开始使用 System.nanoTime 这很好。
但是我遇到了一些问题,我必须比较过去的事件。
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, xyz);
cal.getTimeMillis();
可以很好地获取milliseconds 中的时间,但是将其转换为nanoseconds(将其乘以1000000)远不准确。
如何获取过去某个事件的时间(以毫秒为单位)?
【问题讨论】:
-
你想完成什么?你真正的问题是什么?
-
“既然 Java 文档告诉我,不要使用 System.currentTimeMillis 进行比较”——此限制仅用于测量近距离事件之间的经过时间。如果您使用
Calendar,根据定义,您不会测量近事件之间的经过时间。自 Unix 纪元以来的纳秒数比long可以处理的更大,AFAIK。 -
@CommonsWare 好的,谢谢,我将切换回
milliseconds中的时间。谢谢。 -
@LuiggiMendoza 比较两个事件的时间。事件可以是过去(直到 1970 年,有开始计算 unix 时间)。
-
那么,您有一个初始日期(从年到秒)和一个结束日期(也从年到秒),您想/需要知道两者之间的时间量吗?