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
相关推荐
例如,`java.time.Clock` 接口提供了更灵活的时间源,可以用来替换 `System.currentTimeMillis()`。开发者可以创建一个线程安全的钟表实例,以确保在并发环境下获取时间的正确性和高效性。`Clock` 类的一个具体实现...
在Java编程中,`System.currentTimeMillis()` 是一个非常重要的方法,用于获取系统当前的日期和时间。这个方法返回的是从1970年1月1日(UTC/GMT的午夜)开始到现在的毫秒数。这是一个长期通用的标准,用于表示时间的...
System.nanoTime() System.currentTimeMillis() SystemClock.uptimeMillis() SystemClock.elapsedRealtime() SystemClock.currentThreadTimeMillis 0、时间的单位: 秒:second 毫秒:Millisecond 微妙:Microsecond...
互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...
为了解决 `System.currentTimeMillis()` 的局限性,Java 提供了 `System.nanoTime()` 方法来获取比毫秒更精确的时间。该方法返回自某个固定点以来的纳秒数,通常用于测量时间差,而不是绝对时间。需要注意的是,虽然...
首先,我们可以使用`System.currentTimeMillis()`方法来获取当前时间(单位为毫秒)作为基准点,然后在程序执行完毕后再获取一次时间,通过两者之差即可计算出程序的运行时间。例如: ```java long startTime = ...
long haomiao = System.currentTimeMillis(); int b = (int)((haomiao/1000)%26+65); char daxiezimu = (char)b; System.out.println(haomiao); System.out.println(daxiezimu); } }
如果需要高精度的时间戳,可以使用`System.nanoTime()`,但请注意它并不直接代表时间,而是微秒级别的系统计时器值,需要适当转换。 3. **示例代码**: - NTP客户端实现: ```java public class NtpClient { ...
00:00 GMT以来的毫秒数,而`nanoTime()`方法虽然返回的是自某个不确定的起点以来的纳秒数,但这个值并不适合直接用来计算时间差,因为它并不与`currentTimeMillis()`同步。`Nanotime`库则提供了更为精确且易于使用的...
在Java编程语言中,`System.currentTimeMillis()` 是一个非常基础且重要的方法,用于获取当前系统时间。这个方法返回从1970年1月1日0时0分0秒(协调世界时间,UTC)到现在的总毫秒数。这是一个非常常用的函数,尤其...
Java使用`java.util.Date`类来表示日期和时间,而`System.currentTimeMillis()`方法返回的是自1970年1月1日00:00:00 GMT以来的毫秒数。`new Date()` 实际上是基于这个毫秒值创建一个日期对象,但它默认使用的是UTC...
在Java编程中,获取系统时间的操作通常是通过`java.util.Date`类或`java.time`包下的类来实现的。然而,标题"java 获取系统时间错误,少了8小时"表明开发者在尝试获取系统时间时遇到了一个时区问题。这通常与Java中...
1. **使用更高精度的计时器**:一些编程语言提供了更精确的计时器API,如Java的`System.nanoTime()`,它可以提供纳秒级别的计时,比毫秒级别的`System.currentTimeMillis()`更为精确。通过这种方式,可以更精确地...
总结起来,Java提供了多种工具和方法来测试代码的执行时间,包括`System.currentTimeMillis()`、`System.nanoTime()`、`TimeUnit`以及`Thread.sleep()`等。开发者可以根据具体需求选择合适的方式,对代码进行性能...
7. 快速高质量的时间访问:JVM提供了快速高质量的时间访问,例如currentTimeMillis和nanoTime等。 8. 内部introspection:JVM提供了内部introspection功能,允许开发者查看Java应用程序的内部状态。 9. 访问巨大预...
Java 计算程序代码执行时间的方法可以使用 System.currentTimeMillis() 方法和 System.nanoTime() 方法来记录程序的开始和结束时间,从而计算出程序的执行时间。这些方法对于排查性能问题、优化代码执行效率和 debug...
在Java中,我们可以使用内置的`System.currentTimeMillis()`或者`System.nanoTime()`方法来获取当前时间,通过比较函数执行前后的时间差,计算出函数的运行时间。然而,这些方法并不总是提供最精确的结果,因为它们...
考虑到闰秒的存在,使用`System.currentTimeMillis()`可能无法准确获取时间,因为此方法不处理闰秒。对于高精度时间需求,可以使用`System.nanoTime()`,但需注意单位转换。 9. **日期和时间的操作** `Calendar`...
根据给定文件的信息,本文将围绕“当前时间和转化为格林时间”的主题进行展开,详细解析如何在Java编程语言中获取当前时间,并将其转换为格林尼治标准时间(Greenwich Mean Time,简称GMT)。 ### 一、获取当前时间...
`System.currentTimeMillis()`是Java API中最常用的时间获取方法,它返回自1970年1月1日00:00:00 UTC以来的毫秒数。虽然这个方法简单易用,但在高并发环境下,由于其线程不安全的特性,频繁调用可能导致CPU资源浪费...