`

currentTimeMillis and nanoTime时间的区别

    博客分类:
  • JAVA
 
阅读更多

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

 

 

 

 

 

分享到:
评论

相关推荐

    android时间戳总结:System.nanoTime(),System.currentTimeMillis(),SystemClock

    System.nanoTime() System.currentTimeMillis() SystemClock.uptimeMillis() SystemClock.elapsedRealtime() SystemClock.currentThreadTimeMillis 0、时间的单位: 秒:second 毫秒:Millisecond 微妙:Microsecond...

    System.currentTimeMillis()计算方式与时间的单位转换详解

    主要介绍了System.currentTimeMillis()计算方式与时间的单位转换详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    高并发场景下 System.currentTimeMillis() 的性能问题

    NULL 博文链接:https://buru.iteye.com/blog/1779991

    System.currentTimeMillis()显示大写字母

    long haomiao = System.currentTimeMillis(); int b = (int)((haomiao/1000)%26+65); char daxiezimu = (char)b; System.out.println(haomiao); System.out.println(daxiezimu); } }

    Java获取当前系统事件System.currentTimeMillis()方法

    下面小编就为大家带来一篇Java获取当前系统事件System.currentTimeMillis()方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    用程序输出“当前时间是XXXX年XX月XX日XX时XX分XX秒(第XX周,周X)

    获取系统时间的方法是java.lang.System.currentTimeMillis() ,见JDK API。 3 定义点类,圆是由圆心(点)和半径组成的,请完成圆类,注意“派”为常量,取3.14。圆类具有judge函数可以判断两圆的关系:相离、相交...

    Java Date Time 教程-时间测量.docx

    由于System.currentTimeMillis()没有返回精准的时间,所以不止一次地去执行测量操作是个不错的主意。也许10次、100次或者1000次,甚至更多。这样由于大粒度时间值(该值并不是每毫秒都在变化着)而导致的非精准时间...

    faketime:伪造currentTimeMillis()而没有类加载器黑客

    FakeTime使用本机Java代理将System.currentTimeMillis()实现替换为您可以使用系统属性进行控制的代理。 受启发。 public class ExamRegistrationServiceTest implements FakeTimeMixin { @Autowired ...

    java 获取指定日期(带毫秒)13位时间戳

    java 获取指定日期(带毫秒)的 13位时间戳 ,获取当前时间的时间戳 一句话就可以System.currentTimeMillis();

    Python获取当前时间的方法

    我有的时候写程序要用到当前时间,我就想用python去取当前的时间,虽然不是很难,但是老是忘记,用一次丢一次,为了能够更好的记住,我今天特意写下获取当前时间的方法,如果你觉的对你有用的话,可以收藏下。...

    Mp4MetaParser:读写mp4的创建时间和修改时间

    Mp4MetaParser 支持读写mp4创建时间和修改时间。 您可以使用许多第三方库(例如ffmpeg等)来完成此工作,但缺点是库的大小太大。 如果您只想修改元数据,例如mp4文件的创建和修改时间,则可以使用它,它的大小仅为11...

    android获取时间差的方法

    本文实例讲述了android获取时间差的方法。分享给大家供大家参考。具体分析如下: 有些时候我们需要获取当前时间和某个时间之间的时间差,这时如何获取呢...Date curDate = new Date(System.currentTimeMillis()); //PRO

    Python使用当前时间、随机数产生一个唯一数字的方法

    Python生成当前时间很简单,比Java的代码简短多了,Java产生时间可参考《Java获取当前系统事件System.currentTimeMillis()方法》 具体代码如下: #-*-coding:utf-8-*- import datetime now = datetime.datetime.now...

    高性能获取系统时间

    高并发场景下System.currentTimeMillis()的性能问题的优化

    java 获取当前时间

    java获取当前时间:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,利用System.currentTimeMillis()也可以获取

    Metodologia_Ejercicios:编程方法和算法应用练习

    方法论_练习 编程方法和算法应用练习 实用程序:我们正在研究的算法的最重要的课程 斐波那契:迭代和递归 ... 并使用 System 类的 currentTimeMillis 和/或 nanoTime 方法,它们提供分别以毫秒和纳秒为单位的系统时间。

    Java时间格式表示

    1. 日历时间格式 1.1 Date 时期类[逐渐淘汰] 获取当前系统时间 大部分构造方法已经过时 构造方法 Date(); 创建一个Date,对应当前时间,精度... System.currentTimeMillis(); 可以获取当前系统时间戳毫秒数 1.2.

    android中几种for循环的效率

    long timenow = System.currentTimeMillis(); for (String str : strs) { count++; } return System.currentTimeMillis() - timenow; } 2.比较慢 private long getTime2() { long time = 0; int...

    ftp连接池实例

    在这里我所做的操作就是,在开始创建ftp连接池的时候,记录下系统的当前时间,例如为:long beginTime=System.currentTimeMillis(),在取文件之前获得 当前系统的时间 long endTime=System.currentTimeMillis(),...

    【java】如何获取当前时间的时间戳及时间戳转换问题

    一、时间戳定义(摘自百度百科) 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒...方法一:通过System的currentTimeMillis()方法 System.out.println(Syst

Global site tag (gtag.js) - Google Analytics