currentTimeMillis and nanoTime时间的区别

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

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值