Java 中的 java.time.Instant 類本質上表示一個時間點。這是 Unix 時代時間軸上的一個精確時刻。 Unix 紀元是 1970 年 1 月 1 日的 00:00:00 UTC 時間。 Instant 類可用於表示時間戳、持續時間和間隔。
即時值可以從各種來源獲得,包括時鍾時間、網絡時間和數據庫時間。 Instant.now() 是從係統時鍾返回當前時刻的方法。這對於獲取當前時間戳很有用。
使用Instant.now()獲取當前時間戳的示例
Java
/*package whatever //do not write package name here */
import java.time.Instant;
public class InstantExample {
public static void main(String[] args) {
// Get the current instant
Instant now = Instant.now();
System.out.println("Current timestamp: " + now);
}
}
輸出:
Current timestamp: 2023-04-03T12:32:34.243715Z
除了Instant.now()之外,還有其他方法可以創建Instant對象。例如,您可以使用 Instant.parse() 方法解析表示瞬間的字符串。這是一個例子:
Java
/*package whatever //do not write package name here */
import java.time.Instant;
public class InstantExample {
public static void main(String[] args) {
// Parse a string that represents an instant
Instant instant = Instant.parse("2023-04-03T12:32:34.243715Z");
System.out.println("Parsed timestamp: " + instant);
}
}
輸出:
Parsed timestamp: 2023-04-03T12:32:34.243715Z
您還可以使用 Date.toInstant() 方法從 java.util.Date 對象創建 Instant 對象。這是一個例子:
Java
/*package whatever //do not write package name here */
import java.time.Instant;
import java.util.Date;
public class InstantExample {
public static void main(String[] args) {
// Create a Date object
Date date = new Date();
// Convert the Date object to an Instant
Instant instant = date.toInstant();
System.out.println("Instant from Date: " + instant);
}
}
輸出:
Instant from Date: 2023-04-03T12:32:34.244891Z
即時對象是不可變的,這意味著一旦創建即時對象,它的值就不會改變。但是,您可以使用 Instant.plus() 和 Instant.minus() 等方法基於現有 Instant 對象創建新的 Instant 對象。這些方法返回一個新的 Instant 對象,該對象按指定的時間量進行調整。例如:
Java
/*package whatever //do not write package name here */
import java.time.Instant;
import java.time.temporal.ChronoUnit;
public class InstantExample {
public static void main(String[] args) {
// Get the current instant
Instant now = Instant.now();
System.out.println("Current timestamp: " + now);
// Add 1 hour to the current instant
Instant oneHourLater = now.plus(1, ChronoUnit.HOURS);
System.out.println("One hour later: " + oneHourLater);
// Subtract 30 seconds from the current instant
Instant thirtySecondsEarlier = now.minus(30, ChronoUnit.SECONDS);
System.out.println("Thirty seconds earlier: " + thirtySecondsEarlier);
}
}
輸出:
Current timestamp: 2023-04-03T12:32:34.245917Z One hour later: 2023-04-03T13:32:34.
相關用法
- Java java.time.Instant.adjustInto()用法及代碼示例
- Java java.time.Instant.atOffset()用法及代碼示例
- Java java.time.Instant.atZone()用法及代碼示例
- Java java.time.Instant.compareTo()用法及代碼示例
- Java java.time.Instant.equals()用法及代碼示例
- Java java.time.Instant.from()用法及代碼示例
- Java java.time.Instant.get()用法及代碼示例
- Java java.time.Instant.getEpochSecond()用法及代碼示例
- Java java.time.Instant.getLong()用法及代碼示例
- Java java.time.Instant.getNano()用法及代碼示例
- Java java.time.Instant.hashCode()用法及代碼示例
- Java java.time.Instant.isAfter()用法及代碼示例
- Java java.time.Instant.isBefore()用法及代碼示例
- Java java.time.Instant.isSupported()用法及代碼示例
- Java java.time.Instant.minus()用法及代碼示例
- Java java.time.Instant.minusMillis()用法及代碼示例
- Java java.time.Instant.minusNanos()用法及代碼示例
- Java java.time.Instant.minusSeconds()用法及代碼示例
- Java java.time.Instant.now()用法及代碼示例
- Java java.time.Instant.ofEpochMilli()用法及代碼示例
- Java java.time.Instant.ofEpochSecond()用法及代碼示例
- Java java.time.Instant.parse()用法及代碼示例
- Java java.time.Instant.plus()用法及代碼示例
- Java java.time.Instant.plusMillis()用法及代碼示例
- Java java.time.Instant.plusNanos()用法及代碼示例
注:本文由純淨天空篩選整理自harshalpatil73大神的英文原創作品 java.time.InstantSource Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。