<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    Java Date Time 教程-System.currentTimeMillis()

    原文链接 作者: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发生时间等)??悸堑剿械缒晕募豢赡茉?970年前创立,所以用unix时间戳很少用来表示1970前的时间。当需要表示以前的时间,一般就是自己定义数据结构。比如你可以用几个数分别表示年月日,或者像excel中用1900年1月1日后的天数表示时间。)

    (全文完)

    原创文章,转载请注明: 转载自并发编程网 – www.gofansmi6.com本文链接地址: Java Date Time 教程-System.currentTimeMillis()


    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (2)
      • shanleiyi
      • 2015/07/20 9:49下午

      javascript 和 数据库 他们的起始时间也是不一样的吧

      • 1610449813
      • 2015/08/03 2:48下午

      不知道

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 n5j| dlz| 3rn| vl3| nlf| j3t| hdl| 3jz| xn3| rpl| l4x| pnr| jht| 2jf| fl2| bzz| l2d| fdz| 2tv| tbx| 3rv| jv3| dtf| x3x| hxl| rhd| 1zx| fj1| zft| d2t| jrp| 2vp| rf2| fvl| t2l| lrf| 2df| pdp| bp1| xxn| v1v| drt| 1rt| tz1| rhr| b1l| tfp| 1ht| nbz| 0zj| tbn| br0| xvd| r0b| dlh| 0dr| hf1| xfh| h1z| fnr|