原文链接 作者:Jakob Jenkov  译者:魏嘉鹏

静态方法System.currentTimeMillis() 返回从1970年1月1日到现在的总毫秒数。返回类型为long。下面是一个例子:

long timeNow = System.currentTimeMillis();

实际上要做的就只有这么多了。返回long类型的值可以用于初始化java.util.Date,java.sql.Date、java.sql.Timestamp和java.util.GregorianCalendar对象。

时间粒度

System.currentTimeMillis() 方法的粒度大于1毫秒。如果你重复地调用该方法,在一段时间内你会看到你获取到的都是相同的值,然后突然一下子跳了10/20/30毫秒甚至更多。该方法不是全世界最准确的或者细粒度的计时器。

(译者注:关于时间戳为什么是自1970年1月1日开始的?摘录知乎的两个回答如下(原文地址):

仲晨:因为Unix就是那个时代产生的。Unix是1969年发布的雏形,最早是基于硬件60Hz的时间计数。1971年底出版的《Unix Programmer’s Manual》里定义的Unix Time是以1971年1月1日00:00:00作为起始时间,每秒增长60。之后考虑到32位整数的范围,如果每秒60个数字,则两年半就会循环一轮了。于是改成了以秒为计数单位。这个循环周期有136年之长,就不在乎起始时间是1970还是1971年了,于是就改成了人工记忆、计算比较方便的1970年了。

许铖:我来补充问题的后半截。因为unix时间戳是一个有符号整数,所以1970年前一百年可以用其负数部分表示。但事实上很少这要使用。因为unix时间戳主要用来表示当前时间或者和电脑有关的日志时间(如文件创立时间,log发生时间等)。考虑到所有电脑文件不可能在1970年前创立,所以用unix时间戳很少用来表示1970前的时间。当需要表示以前的时间,一般就是自己定义数据结构。比如你可以用几个数分别表示年月日,或者像excel中用1900年1月1日后的天数表示时间。)

(全文完)

Java Date Time 教程-System.currentTimeMillis()相关推荐

  1. Java Date Time 教程

    原文链接 作者:Jakob Jenkov  译者:魏嘉鹏 目录 Java 8 Date Time API Java 7 Date Time API 当你初次尝试弄明白怎么去使用Java的date ti ...

  2. Java Date Time 教程-java.sql.Date

    Java的java.sql.Date类在JDBC API中被使用.如果你需要在java.sql.PreparedStatement上设置日期或者从java.sql.ResultSet获取日期,你将会和 ...

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

    为什么80%的码农都做不了架构师?>>>    在Java中,用System.currentTimeMillis()来测量时间最方便. 你要做的是在某些操作之前获取到时间,然后在这些 ...

  4. Java Date Time 教程-java.sql.Timestamp

    Java的java.sql.Timestamp类在JDBC API中被使用.如果你需要在java.sql.PreparedStatement上设置日期+时间或者从java.sql.ResultSet获 ...

  5. Java中获取时间System.currentTimeMillis()与System.nanoTime()区别

    (1)System.nanoTime()的精确度更高一些,如今的硬件设备性能越来越好,如果要更精密计算执行某行代码或者某块代码所消耗的时间,该方法会测量得更精确.开发者可以根据需要的精确度来选择用哪一 ...

  6. Java使用System.currentTimeMillis()方法计算程序运行时间

    Java 中提供的 System.currentTimeMillis() 方法用于获取当前的计算机时间,时间的表达格式为当前计算机时间和 GMT 时间(格林威治时间)1970年1月1号0时0分0秒所差 ...

  7. 疑惑,System.currentTimeMillis真有性能问题?

    点击关注公众号,Java干货及时送达 System.currentTimeMillis的性能真有如此不堪吗? 最近我在研究一款中间件的源代码时,发现它获取当前时间不是通过System.currentT ...

  8. System.currentTimeMillis()的慎用

    转自:http://blog.sina.com.cn/s/blog_6b8bd9d80101fe8t.html 在对新写的超快xml解析器和xpath引擎进行效率测试时,为获取执行时间,开始也没多想就 ...

  9. 使用System.currentTimeMillis实现定时任务

    实际上使用Java自带的System.currentTimeMillis就能实现定时任务 废话少说,直接上代码 每隔几秒钟执行一次 System.out.println("start at: ...

最新文章

  1. android SwipeRefreshLayout 增加上拉加载更多
  2. 2019-4-23 plan
  3. Android 5.0及以上实现屏幕截图
  4. 正则表达式 php 模板,PHP中正则表达式回顾(4)--编写一个非常简单而且山寨的smarty模板引擎...
  5. springmvc整合swagger 与 常用注解说明
  6. uva 10673 ——Play with Floor and Ceil
  7. 个人发卡源码仿企业版
  8. matlab 鼠标自定义选中图像的任意区域
  9. Django报错NameError: name ‘ListView‘ is not defined
  10. python登录验证码生成及自动化测试规避
  11. 这些神奇的 QQ 你还记得几个?
  12. QT QAudioOutput+QIODevice 音频流实时播放
  13. 【Excel】数据处理与查看
  14. PICkit4 烧写、仿真时获取ID失败 Reception on endpoint 129 failed
  15. html5:初学h标签的使用 p标签 br标签 hr标签
  16. 【大数据技术】实验3:熟悉常用的Hive操作
  17. 2019.1.30《C Primer Plus》拖了一天写完的第八章编程练习答案
  18. SparkSQL的入门实践教程
  19. Studio One5编曲和音频后期制作音乐编辑软件更新及新增功能介绍
  20. 让笔记本触摸板默认关闭

热门文章

  1. linux 编写java代码
  2. java 不刷新页面_java – 更新jsp页面的内容而不刷新
  3. python pil怎么调用_python3如何使用pil
  4. linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy
  5. c语言字符数组赋值_C语言关于结构体字符成员元素赋值的方法
  6. python交互界面实例_Python面向对象编程扑克牌发牌程序,另含大量Python代码!
  7. ggplot2作图详解:图层语法和图形组合
  8. 2022 年考研数据结构_6 图
  9. 【equals与==比较】String的两种拼接
  10. linux qt自带例子无法,在Qt Creator中,错过了一些例子