System.currentTimeMillis:
public static long currentTimeMillis()
以毫秒为单位返回当前时间。请注意,虽然返回值的时间单位是毫秒,但值的粒度取决于底层操作系统,并且可能更大。例如,许多操作系统以几十毫秒为单位测量时间。
有关Date“计算机时间”和协调世界时(UTC)之间可能出现的轻微差异的讨论
返回:
当前时间与UTC时间1970年1月1日午夜之间的差值,以毫秒为单位
System.nanoTime:
public static long nanoTime()
返回最精确的可用系统计时器的当前值,以纳秒为单位。
此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示纳秒,因为某些固定但是任意时间(可能在将来,因此值可能为负)。该方法提供纳秒精度,但不一定是纳秒精度。不保证值的变化频率。 由于数值溢出,跨越大于约292年(2 63纳秒)的连续调用的差异将无法准确计算经过的时间。
例如,要测量某些代码执行所需的时间:
long startTime = System.nanoTime();
// …正在测量的代码…
long estimatedTime = System.nanoTime() - startTime;
返回:
系统计时器的当前值,以纳秒为单位。