2021-04-18 11:35  阅读(98)
文章分类:Java 基础教程 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-date-time-methods.html

Java日期时间 - Java实例/持续时间

实例和持续时间允许我们记录时间戳和已用时间。

我们可以从瞬间添加和减去持续时间,以获得另一个瞬间。

通过添加两个持续时间,我们可以获得另一个持续时间。

即时和持续时间类别分别存储秒和纳秒。

即时和持续时间更常使用机器级时间。

实例

瞬间表示独特的时刻。

一个时代是用作测量其他时刻的起源的瞬间。 时代是在1970-01-01T00:00:00Z。

两个连续时刻之间的时间是1纳秒。

时代之后的时刻具有正值,而时代之前的时刻具有负值。

在时期的瞬间被分配零值。

我们可以使用Instant.now()来获取使用系统默认时钟的当前时刻。

    import java.time.Instant;
    
    public class Main {
      public static void main(String[] args) {
        Instant instantNow = Instant.now();
        System.out.println(instantNow);
      }
    }
    

上面的代码生成以下结果。

202104181136_1.png

例2

您可以从历元偏移创建即时。

以下代码创建一个Instant对象以表示从时代开始的9秒。

    import java.time.Instant;
    
    public class Main {
      public static void main(String[] args) {
        Instant instance9 = Instant.ofEpochSecond(9);
        System.out.println(instance9);
        
        instance9 = Instant.ofEpochSecond(-9);
        System.out.println(instance9);
      }
    }
    

上面的代码生成以下结果。

202104181135_2.png

注意

两个时刻可以比较知道是否发生在其他之前或之后。

实例和持续时间用于记录两个事件之间的时间戳和经过时间。

持续时间

Duration对象表示两个时刻之间的时间跨度。

Duration类可以具有正值和负值。

我们可以使用它的一个XXXX()静态工厂方法创建Duration类。

    import java.time.Duration;
    
    public class Main {
      public static void main(String[] args) {
    
        Duration d1  = Duration.ofDays(2);
        System.out.println(d1);
    
        Duration d2  = Duration.ofMinutes(2);
        System.out.println(d2);
    
      }
    }
    

上面的代码生成以下结果。

202104181135_3.png

例3

乘法,除法和否定适用于Duration对象。

    import java.time.Duration;
    
    public class Main {
      public static void main(String[] args) {
        Duration d  = Duration.ofSeconds(200); // 3 minutes and 20 seconds 
        Duration d1  = d.multipliedBy(2);   // 6  minutes and  40  seconds 
        Duration d2  = d.negated();            // -3  minutes and  -20  seconds
        System.out.println(d);
        System.out.println(d1);
        System.out.println(d2);
      }
    }
    

上面的代码生成以下结果。

202104181135_4.png

例4

以下代码显示了如何从Instant中获取秒和纳秒:

    import java.time.Instant;
    
    public class Main {
      public static void main(String[] args) {
        Instant i1 = Instant.now();
       
        long seconds = i1.getEpochSecond();
        System.out.println(seconds);
        int nanoSeconds = i1.getNano();
        System.out.println(nanoSeconds);
      }
    }
    

上面的代码生成以下结果。

202104181135_5.png

例5

以下代码显示了如何进行即时和持续时间计算。

    import java.time.Duration;
    import java.time.Instant;
    
    public class Main {
      public static void main(String[] args) {
        Duration d1 = Duration.ofSeconds(55);
        Duration d2 = Duration.ofSeconds(-17);
        
        Instant i1 = Instant.now();
        
        Instant i4 = i1.plus(d1);
        Instant i5 = i1.minus(d2);
    
        Duration d3 = d1.plus(d2);
        System.out.println(d3);
      }
    }
    

上面的代码生成以下结果。

202104181135_6.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java 实例/持续时间
上一篇
Java 日期时间方法
下一篇
Java 日期时区