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的更多相关文章

  1. System.nanoTime与System.currentTimeMillis的理解与区别

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果 ...

  2. System.nanoTime与System.currentTimeMillis的区别

    平时产生随机数时我们经常拿时间做种子,比如用 System.currentTimeMillis的结果,但是在执行一些循环中使用了System.currentTimeMillis,那么每次的结 果将会差 ...

  3. System.nanoTime()的使用

    纳秒 ns(nanosecond):纳秒, 时间单位.一秒的10亿分之一,即等于10的负9次方秒.常用作 内存读写速度的单位. 1纳秒=0.000001 毫秒 1纳秒=0.00000 0001秒 ja ...

  4. System.nanoTime理解

    JDK1.5之后java中的计时给出了更精确的方法:System.nanoTime(),输出的精度是纳秒级别,这个给一些性能测试提供了更准确的参考. 但是这个方法有个需要注意的地方,不能用来计算今天是 ...

  5. 【填坑纪事】一次用System.nanoTime()填坑System.currentTimeMills()的实例记录

    JDK提供了两个方法,System.currentTimeMillis()和System.nanoTime(),这两个方法都可以用来获取表征当前时间的数值.但是如果不仔细辨别这两个方法的差别和联系,在 ...

  6. System.nanoTime与System.currentTimeMillis的区别(转)

    原文地址:http://blog.csdn.net/dliyuedong/article/details/8806868 平时产生随机数时我们经常拿时间做种子,比如用System.currentTim ...

  7. 对于应用需要记录某个方法耗时的场景,必须使用clock_gettime传入CLOCK_MONOTONIC参数,该参数获得的是自系统开机起单调递增的纳秒级别精度时钟,相比gettimeofday精度提高不少,并且不受NTP等外部服务影响,能准确更准确来统计耗时(java中对应的是System.nanoTime),也就是说所有使用gettimeofday来统计耗时(java中是System.curre

    对于应用需要记录某个方法耗时的场景,必须使用clock_gettime传入CLOCK_MONOTONIC参数,该参数获得的是自系统开机起单调递增的纳秒级别精度时钟,相比gettimeofday精度提高 ...

  8. 我的Java开发学习之旅------>System.nanoTime与System.currentTimeMillis的区别

    首先来看一道题:下面代码的输出结果是什么? import java.util.HashMap; import java.util.Map; public class HashMapTest { pub ...

  9. java: new Date().getTime() 与 System.currentTimeMillis() 与 System.nanoTime()

    java使用new Date()和System.currentTimeMillis()获取当前时间戳   在开发过程中,通常很多人都习惯使用new Date()来获取当前时间,使用起来也比较方便,同时 ...

随机推荐

  1. hihoCoder #1498 : Diligent Robots【数学】

    #1498 : Diligent Robots 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 There are N jobs to be finished. It t ...

  2. hdu_2030

    一个小小知识点,统计字符串中汉字出现的次数,直接给出代码 //ASCII码的范围是0-127所以,超出范围的都是汉字,因为一个汉字占两个字符位置,所以结果除以2就可以了 #include<cst ...

  3. [国嵌攻略][065][DM9000驱动程序设计]

    移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x4800 ...

  4. Qt布局操作

    Qt界面布局是用来界面上控件排序的,例如对齐.自适应分辨率等都要用到布局. Qt界面布局跟Visual Studio系列完全不一样,VS系列的操作很简单,一般情况下,很快就能入手了,但比较死板(特别是 ...

  5. 用thinkphp开启伪静态,用wamp开启很快搞定;但是用phpstudy总是开启失败,为什么?

    https://segmentfault.com/q/1010000005100662 thinkphp应用的根目录下.htaccess中的内容是: <IfModule mod_rewrite. ...

  6. dig(域信息搜索器)命令

    dig命令   dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法 dig(选项)(参数) 选项 @<服务器地址>:指定进行域名解析的域名服务器: -b<ip地 ...

  7. Lnmp修改php.ini配置

    http://www.chenruixuan.com/archives/341.html A-A+ 陈瑞轩2014年5月8日07102 次浏览PHP | 工作 要在lnmp系统里面修改php.ini配 ...

  8. javaScript中关于字符串的操作函数和方法

    1.字符串转换 toString():可以将任何类型的数据都转换为字符串 var num= 19; //19 var myStr = num.toString(); //"19" ...

  9. HTML怎么设置字与字之间的间距代替空格

    空格: &nbsp CSS: letter-spacing字与字 word-spacing词与词 行距:line-height:1.5; 段落:<p style="margin ...

  10. forward和redirect

    Forward和Redirect代表了两种请求转发方式:直接转发和间接转发. 直接转发方式(Forward),客户端和浏览器只发出一次请求,Servlet.HTML.JSP或其它信息资源,由第二个信息 ...