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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。