Java 實例/持續(xù)時間

2018-03-12 13:37 更新

Java日期時間 - Java實例/持續(xù)時間


實例和持續(xù)時間允許我們記錄時間戳和已用時間。

我們可以從瞬間添加和減去持續(xù)時間,以獲得另一個瞬間。

通過添加兩個持續(xù)時間,我們可以獲得另一個持續(xù)時間。

即時和持續(xù)時間類別分別存儲秒和納秒。

即時和持續(xù)時間更常使用機器級時間。

實例

瞬間表示獨特的時刻。

一個時代是用作測量其他時刻的起源的瞬間。 時代是在1970-01-01T00:00:00Z。

兩個連續(xù)時刻之間的時間是1納秒。

時代之后的時刻具有正值,而時代之前的時刻具有負值。

在時期的瞬間被分配零值。

我們可以使用Instant.now()來獲取使用系統(tǒng)默認時鐘的當前時刻。

import java.time.Instant;

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

上面的代碼生成以下結果。



例2

您可以從歷元偏移創(chuàng)建即時。

以下代碼創(chuàng)建一個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);
  }
}

上面的代碼生成以下結果。


注意

兩個時刻可以比較知道是否發(fā)生在其他之前或之后。

實例和持續(xù)時間用于記錄兩個事件之間的時間戳和經(jīng)過時間。

持續(xù)時間

Duration 對象表示兩個時刻之間的時間跨度。

Duration類可以具有正值和負值。

我們可以使用它的一個XXXX()靜態(tài)工廠方法創(chuàng)建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);

  }
}

上面的代碼生成以下結果。

例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);
  }
}

上面的代碼生成以下結果。

例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);
  }
}

上面的代碼生成以下結果。

例5

以下代碼顯示了如何進行即時和持續(xù)時間計算。

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);
  }
}

上面的代碼生成以下結果。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號