• Java的日期与时间 java.time.Duration (转)


    一个Duration对象表示两个Instant间的一段时间,是在Java 8中加入的新功能。

    一个Duration实例是不可变的,当创建出对象后就不能改变它的值了。你只能通过Duration的计算方法,来创建出一个新的Durtaion对象。你会在之后的教程中见到的。

    创建Duration实例 
    使用Duration类的工厂方法来创建一个Duration对象,以下是一个使用between()的例子:

    Instant first = Instant.now();
    // wait some time while something happens
    Instant second = Instant.now();
    Duration duration = Duration.between(first, second);

    访问Duration的时间 
    一个Duration对象里有两个域:纳秒值(小于一秒的部分),秒钟值(一共有几秒),他们的组合表达了时间长度。注意屯使用System.getCurrentTimeMillis()时不同,Duration不包含毫秒这个属性。 
    你可以通过以下两个方法得到它们的值:

    long seconds =  getSeconds()
    int nanos   =   getNano()

    你也可以转换整个时间到其它单位如纳秒、分钟、小时、天:

    toNanos()
    toMillis()
    toMinutes()
    toHours()
    toDays()

    举例而言:toNanos()与getNano()不同,toNanos()获得的是Duration整个时间共有多少纳秒,而getNano()只是获得这段时间中小于一秒的部分。你也许会问,为什么没有toSeconds()方法,因为已经有getSeconds()这个方法能达到同样的功能了。

    Duration计算 
    Duration类包含一系列的计算方法:

    plusNanos()
    plusMillis()
    plusSeconds()
    plusMinutes()
    plusHours()
    plusDays()
    minusNanos()
    minusMillis()
    minusSeconds()
    minusMinutes()
    minusHours()
    minusDays()

    这些方法所做的事都是相似的,我在这儿也不展示内部实现细节了,就展示一个加减的例子吧:

    Duration start = ... //obtain a start duration
    Duration added      = start.plusDays(3);
    Duration subtracted = start.minusDays(3);

    第一行创建了一个Duration对象叫start,具体怎么创建可以参考前面的代码。第二三行样例创建了两个新的Duration,通过调用start的加减操作,使得added对象表示的时间比start多三天,而substracted则少三天。 
    所有的计算方法都会返回一个新的Duration,以保证Duration的不可变属性。

    原文:https://blog.csdn.net/tjgykhulj/article/details/69053873

  • 相关阅读:
    C#,调用dll产生 "尝试读取或写入受保护的内存 。这通常指示其他内存已损坏。"的问题
    【调试输出】与【输出调试文本】的区别
    二、易语言 api 相关
    E4A 与JS交互事件无反应
    变量循环首、判断循环首、枚举循环首
    文本的操作:子文本替换、分割文本、取文本中间、取指定文本
    变量、&连接、函数与过程、按下某键
    淘宝客推广链接如何转换?
    淘宝客知道这几个ID,收入将会提高50%
    文件已经加入.gitignore但是vs并没有显示文件处于ignore状态
  • 原文地址:https://www.cnblogs.com/muxi0407/p/11662801.html
Copyright © 2020-2023  润新知