`

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

 

 

 

 

 

分享到:
评论

相关推荐

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

    例如,`java.time.Clock` 接口提供了更灵活的时间源,可以用来替换 `System.currentTimeMillis()`。开发者可以创建一个线程安全的钟表实例,以确保在并发环境下获取时间的正确性和高效性。`Clock` 类的一个具体实现...

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

    在Java编程中,`System.currentTimeMillis()` 是一个非常重要的方法,用于获取系统当前的日期和时间。这个方法返回的是从1970年1月1日(UTC/GMT的午夜)开始到现在的毫秒数。这是一个长期通用的标准,用于表示时间的...

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

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

    Unix时11间戳和Java 的 System.currentTimeMillis()的区别.pdf

    ,Unix时11间戳和Java 的 System.currentTimeMillis()的区别.pdf

    Unix时11间戳和Java 的 System.currentTimeMillis()的区别.docx

    ,Unix时11间戳和Java 的 System.currentTimeMillis()的区别.docx

    System.currentTimeMillis() 和 System.nanoTime() 哪个更快?大

    互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...

    Java中获取比毫秒更精确的时间.docx

    为了解决 `System.currentTimeMillis()` 的局限性,Java 提供了 `System.nanoTime()` 方法来获取比毫秒更精确的时间。该方法返回自某个固定点以来的纳秒数,通常用于测量时间差,而不是绝对时间。需要注意的是,虽然...

    java 记录程序执行的时间

    首先,我们可以使用`System.currentTimeMillis()`方法来获取当前时间(单位为毫秒)作为基准点,然后在程序执行完毕后再获取一次时间,通过两者之差即可计算出程序的运行时间。例如: ```java long startTime = ...

    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); } }

    火山安卓取网络时间例程和时间戳例程.rar

    如果需要高精度的时间戳,可以使用`System.nanoTime()`,但请注意它并不直接代表时间,而是微秒级别的系统计时器值,需要适当转换。 3. **示例代码**: - NTP客户端实现: ```java public class NtpClient { ...

    momomo.com.platform.Nanotime:从Java Runtime要求时间时允许更高的精度。 即纳秒精度

    00:00 GMT以来的毫秒数,而`nanoTime()`方法虽然返回的是自某个不确定的起点以来的纳秒数,但这个值并不适合直接用来计算时间差,因为它并不与`currentTimeMillis()`同步。`Nanotime`库则提供了更为精确且易于使用的...

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

    在Java编程语言中,`System.currentTimeMillis()` 是一个非常基础且重要的方法,用于获取当前系统时间。这个方法返回从1970年1月1日0时0分0秒(协调世界时间,UTC)到现在的总毫秒数。这是一个非常常用的函数,尤其...

    java中 new date() 打印出的时间与系统时间错了八小时的解决方法

    Java使用`java.util.Date`类来表示日期和时间,而`System.currentTimeMillis()`方法返回的是自1970年1月1日00:00:00 GMT以来的毫秒数。`new Date()` 实际上是基于这个毫秒值创建一个日期对象,但它默认使用的是UTC...

    java 获取系统时间错误,少了8小时

    在Java编程中,获取系统时间的操作通常是通过`java.util.Date`类或`java.time`包下的类来实现的。然而,标题"java 获取系统时间错误,少了8小时"表明开发者在尝试获取系统时间时遇到了一个时区问题。这通常与Java中...

    精确的控制时间间隔Timer

    1. **使用更高精度的计时器**:一些编程语言提供了更精确的计时器API,如Java的`System.nanoTime()`,它可以提供纳秒级别的计时,比毫秒级别的`System.currentTimeMillis()`更为精确。通过这种方式,可以更精确地...

    测试时间的算法

    总结起来,Java提供了多种工具和方法来测试代码的执行时间,包括`System.currentTimeMillis()`、`System.nanoTime()`、`TimeUnit`以及`Thread.sleep()`等。开发者可以根据具体需求选择合适的方式,对代码进行性能...

    A-JVM-DOES-WHAT_Eva Andreasson.pdf

    7. 快速高质量的时间访问:JVM提供了快速高质量的时间访问,例如currentTimeMillis和nanoTime等。 8. 内部introspection:JVM提供了内部introspection功能,允许开发者查看Java应用程序的内部状态。 9. 访问巨大预...

    Java计算程序代码执行时间的方法小结

    Java 计算程序代码执行时间的方法可以使用 System.currentTimeMillis() 方法和 System.nanoTime() 方法来记录程序的开始和结束时间,从而计算出程序的执行时间。这些方法对于排查性能问题、优化代码执行效率和 debug...

    测试函数的运行时间,有文档说明

    在Java中,我们可以使用内置的`System.currentTimeMillis()`或者`System.nanoTime()`方法来获取当前时间,通过比较函数执行前后的时间差,计算出函数的运行时间。然而,这些方法并不总是提供最精确的结果,因为它们...

    获取时间和日期

    考虑到闰秒的存在,使用`System.currentTimeMillis()`可能无法准确获取时间,因为此方法不处理闰秒。对于高精度时间需求,可以使用`System.nanoTime()`,但需注意单位转换。 9. **日期和时间的操作** `Calendar`...

Global site tag (gtag.js) - Google Analytics