时间单位换算

1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(纳秒)=10^12ps(皮秒)=10^15fs(飞秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒)


currentTimeMillisnanoTime是java.lang.System中提供的提供的两个方法。


1、public static long currentTimeMillis();

返回当前时间与1970.1.1 UTC 零点之间的时间差,以毫秒为单位。

调用:System.currentTimeMillis();

注意:当返回值的时间单位是毫秒时,值的粒度取决于底层操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测量时间。

好处:可与Date很方便的进行转换。

public class MainClass {
public static void main(String[] args) {
long l1 = System.currentTimeMillis();
System.out.println(l1);//
Date d = new Date(l1);
System.out.println(d);// Wed Nov 30 15:17:42 CST 2016
long l2 = d.getTime();
System.out.println(l2);//
}
}

缺点:在CPU速度越来越快的今天,1毫秒已经成了一个相对较长的时间段,用它来测量代码执行的时间时,结果可能不是很理想。

Date的源代码中有构造器:

    public Date() {
this(System.currentTimeMillis());
}

可知new Date()其实就是在调用System.currentTimeMillis(),且Date类中getTime()方法间接返回的就是System.currentTimeMillis()的值。

2、public static long  nanoTime();

在JDK5中增加的方法,返回系统计时器的当前值,以纳秒为单位;精确度是currentTimeMillis()的10^6倍

调用:System.nanoTime();

注意:此方法只能用于测量已过的时间,与系统或钟表时间的其他任何时间概念无关。nanoTime不能用来计算当前时间。

计算代码执行时间代码:

long s = System.nanoTime();
....
System.out.println(System.nanoTime() - s);

 

currentTimeMillis与 nanoTime的更多相关文章

  1. JVM源码分析之System.currentTimeMillis及nanoTime原理详解

    JDK7和JDK8下的System.nanoTime()输出完全不一样,而且差距还非常大,是不是两个版本里的实现不一样,之前我也没注意过这个细节,觉得非常奇怪,于是自己也在本地mac机器上马上测试了一 ...

  2. Java多线程编程核心技术---线程间通信(一)

    线程是操作系统中独立的个体,但这些个体如果不经过特殊处理就不能成为一个整体.线程间的通信就是成为整体的必用方案之一.线程间通信可以使系统之间的交互性更强大,在大大提高CPU利用率的同时还会使程序员对各 ...

  3. Netty5.x中新增和值得注意的点

    最近事情多,OneCoder折腾了好几天,总算翻译完成了. 翻译自官方文档:http://netty.io/wiki/new-and-noteworthy-in-5.x.html   该文档会列出在N ...

  4. 史上最全的 Java 新手问题汇总

    史上最全的 Java 新手问题汇总   Java是目前最流行的编程语言之一——它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在. 有超过30亿 ...

  5. java日期详解

    [TOC] 一.简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的地位比如joda. 文章主要对java日期处理的详解,用1.8可以不用joda. 1. 相关概念 首先 ...

  6. Java高级篇(一)——线程

    前面我们系统的了解了Java的基础知识,本篇开始将进入到Java更深层次的介绍,我们先来介绍一下Java中的一个重要的概念--线程. 一.什么是线程 在了解线程前,我们首先要了解进程的概念.进程是操作 ...

  7. java.lang.system 类源码解读

    通过每块代码进行源码解读,并发现源码使用的技术栈,扩展视野. registerNatives 方法解读 /* register the natives via the static initializ ...

  8. Unix时间转LInux时间

    private static long getTime() { long currentTimeMillis = System.currentTimeMillis(); long nanoTime = ...

  9. System类与Runtime类

    PS: Java程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特定功能.java提供了System类与Runtime类来与程序的运行平台进行交互. System类: 1 ...

随机推荐

  1. 【牛客网】Longest Common Subsequence

    [牛客网]Longest Common Subsequence 发现只有d数组最格路 于是我们把前三个数组中相同的数记成一个三维坐标,同一个数坐标不会超过8个 从前往后枚举d,每次最多只会更新不超过8 ...

  2. php类常量

    类常量类常量可以使用define定义,也可用const定义,但是在类的内部,只允许用const定义,类常量不能更新,也不能删除类常量通常是大写的,两个单词之间用下滑线连接,如MY_NATION类常量在 ...

  3. 20191030-Python实现闭包

    打算在过年前每天总结一个知识点,所以把自己总结的知识点分享出来,中间参考了网络上很多大神的总结,但是发布时候因为时间太久可能没有找到原文链接,如果侵权请联系我删除 20191030:闭包 首先一个函数 ...

  4. WUSTOJ 1277: 小吉吉读书(Java)

    1277: 小吉吉读书 题目   有一本 n 页的书,每天都看 ai 页,已知星期 k 买的书,问星期几能看完?更多内容点击标题. 分析   统计出一个星期能看 a 页,看了 a 页又会回到买书的那一 ...

  5. node express4 + 前端自动刷新

    官网快速生成:http://www.expressjs.com.cn/starter/generator.html 1.安装  express 1.应用生成器工具 express-generator  ...

  6. javascript--HTML DOM常用元素对象

    二,Select:访问select元素 属性:.selectedIndex  获取select中当前选中项的下标 .options  获取select中所有的option元素 返回值为数组 .opti ...

  7. 定义Java类实现字节流转字符流

    package com.buaa.comparable; import java.io.BufferedReader;import java.io.File;import java.io.FileIn ...

  8. nohub

    nohup command > myout.file 2>&1 & nohup command > /dev/null 2>&1 &

  9. 二〇一八-美团工程师面试解析(Java)

    一轮面试: 小数是怎么存的 算法题:N二进制有多少个1 Linux命令(不熟悉 JVM垃圾回收算法 C或者伪代码实现复制算法 volatile 树的先序中序后序以及应用场景 Mysql存储记录的数据结 ...

  10. 完整的ELK+filebeat+kafka笔记

    之前有写过elasticsearch集群和elk集群的博客, 都是基于docker的,使用docker-compose进行编排(K8S暂未掌握) 三台服务器搭建es集群:https://www.cnb ...