3

由于 Java 文档告诉我,不要System.currentTimeMillis用于比较,我开始使用System.nanoTimewhich 很好。
但是我遇到了一些问题,我必须比较过去的事件。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, xyz);
cal.getTimeMillis();

可以很好地获取时间milliseconds,但是将其转换为nanoseconds(通过将其乘以 1000000)远不准确。

如何以毫秒为单位获取过去事件的时间?

4

2 回答 2

3

Java 中的Calendar类不包含纳秒信息。所以你不能得到那个。

如果您需要该详细信息,您需要存储纳秒以long用于稍后要比较的事件。:你也不能这样做, nanoTime() 不是当前时间的表示,但你仍然可以存储它来评估旧进程的经过时间。

于 2013-01-21T20:46:53.710 回答
0

您使用什么数据类型乘以 1,000,000 ?也许您应该使用 BigDecimal,这对您来说已经足够准确了。

于 2013-01-21T20:48:08.250 回答