首页 > 其他 > 详细

System.nanoTime

时间:2016-02-15 22:40:52      阅读:480      评论:0      收藏:0      [点我收藏+]

  System.currentTimeMillis()返回的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数。

  System.nanoTime()返回的是纳秒,nanoTime而返回的可能是任意时间,甚至可能是负数。

 

  System.currentTimeMillis调用的是native方法,使用的是系统的时间,每个JVM对应的应该是相同的,但因为具体的取值依赖于操作系统的实现,不同JVM间可能会有略微的差异。

  System.nanoTime每个JVM维护一份,和系统时间无关,可用于计算时间间隔,比System.currentTimeMillis的精度要高。

 

  修改了系统时间会对System.currentTimeMillis造成影响,而对System.nanoTime没有影响。修改系统时间后会有如下效果:Timmer有影响,Thread.sleep有影响,ScheduledThreadPoolExecutor无影响,可以查看方法的实现调用的是System.currentTimeMillis还是System.nanoTime。

 

  java修改系统时间:
  1.windows环境下:
  Runtime.getRuntime().exec("cmd /c date 2013-05-06");//Windows 系统
  Runtime.getRuntime().exec("cmd /c time 22:35:00");//Windows 系统
  2.linux环境下:
  Runtime.getRuntime().exec(" sudo date -s 2013-05-06")//linux 系统为tomcat用户分配了权限
  Runtime.getRuntime().exec(" sudo date -s 22:25:00")//linux 系统为tomcat用户分配了权限

 

  Linux上获取的时间不正确,总是相差几小时考虑时差的问题,修改/etc/sysconfig/clock。

System.nanoTime

原文:http://www.cnblogs.com/lnlvinso/p/5191446.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!