實例和持續(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); } }
上面的代碼生成以下結果。
您可以從歷元偏移創(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)過時間。
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); } }
上面的代碼生成以下結果。
乘法,除法和否定適用于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); } }
上面的代碼生成以下結果。
以下代碼顯示了如何從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); } }
上面的代碼生成以下結果。
以下代碼顯示了如何進行即時和持續(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); } }
上面的代碼生成以下結果。
更多建議: