java 提供了非常的精确的时间
其中时间的计算为
1秒 = 1000毫米
1毫秒 = 1000微秒
1微秒 = 1000纳秒
获取系统毫秒时间戳为:System.currentTimeMillis()
获取系统微妙间戳为:System.nanoTime()
那之间有啥区别呢,是不是同一时间输出的两个时间戳是 1000000倍数出现呢
看代码
System.out.println("时间的起始时间:" + new Date(0).toLocaleString());
System.out.println("系统的起始时间:" + new Date(0).getTime());
//当前时间 - 起始时间
System.out.println(new Date().getTime() - new Date(0).getTime());
System.out.println("系统的时间戳:" + System.currentTimeMillis());
输出结果:
时间的起始时间:1970-1-1 8:00:00
系统的起始时间:0
1488880815149
系统的时间戳:1488880815149
可以得出结果:
1.系统的标准记时为(日期格式) 1970-1-1 8:00:00
2.long类的开始计时为:0
3.系统的时间戳 = 现在的时间与起始时间间隔的毫秒的数据,并且这个时间戳可以做为时间轴的特性来使用,比如计算某个方法的执行时间等等
System.out.println(System.nanoTime());//输出的是纳秒时间
输出结果:
695024359197168
并且在mac以及linux系统中显示的值与操作系统有影响
通过参考地址学习得知:因此nanoTime其实算出来的是一个相对的时间,相对于系统启动的时候的时间
在计算某个方法的执行时间可以采用
long startTime = System.nanoTime();
System.out.println(System.nanoTime() - startTime);
所以纳秒时间作为计算方法的执行时间更加精确写。而不能做为时间戳来使用。
参考学习地址:
http://mp.weixin.qq.com/s?__biz=MzIzNjI1ODc2OA==&mid=2650886922&idx=1&sn=4c95514fc43d9fe716b60bb923924863&chksm=f32f67b5c458eea3519b2626e8a96ffc9b3ce3dd9b72271f6927034ad1fa3584250e9d7adb3d&mpshare=1&scene=1&srcid=03070gRMJBtXUuSpLjl2Br1O#rd