以纳秒为单位获取日历的时间

时间:2013-01-21 20:43:00

标签: java time calendar

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

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

正常工作以获得milliseconds的时间,但将其转换为nanoseconds(将其乘以1000000)远非不准确。

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

2 个答案:

答案 0 :(得分:3)

Java中的Calendar类不包含纳秒信息。所以你无法得到它。

如果你需要那个细节,你需要将纳秒作为long存储到你想要比较的事件。:你也不能这样做,nanoTime()是不是当前时间的表示,但您仍可以存储它来评估旧流程的经过时间。

答案 1 :(得分:0)

您使用哪种数据类型乘以1,000,000?也许你应该使用BigDecimal,这对你来说足够准确。