java中获取指定时间的时间戳
时间: 2023-02-09 13:10:14 浏览: 116
在 Java 中,可以使用 `Instant` 类来获取指定时间的时间戳。
首先,你需要使用 `ZonedDateTime` 类来表示指定的时间。你可以使用 `ZonedDateTime.of` 方法来创建一个 `ZonedDateTime` 对象,并传入时间的年份、月份、日期、小时数、分钟数、秒数和时区信息:
```java
ZonedDateTime zonedDateTime = ZonedDateTime.of(2020, 1, 1, 0, 0, 0, 0, ZoneId.of("Asia/Shanghai"));
```
然后,你可以使用 `Instant` 类的 `from` 方法来将 `ZonedDateTime` 对象转换为时间戳:
```java
Instant instant = Instant.from(zonedDateTime);
long timestamp = instant.toEpochMilli();
```
最后,你可以使用 `toEpochMilli` 方法将 `Instant` 对象转换为毫秒级时间戳。
注意,时间戳是从 1970 年 1 月 1 日 00:00:00 开始计算的。
例如,下面是一个完整的示例,展示了如何获取指定时间的时间戳:
```java
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) {
// 创建 ZonedDateTime 对象
ZonedDateTime zonedDateTime = ZonedDateTime.of(2020, 1, 1, 0, 0, 0, 0, ZoneId.of("Asia/Shanghai"));
// 将 ZonedDateTime 对象转换为时间戳
Instant instant = Instant.from(zonedDateTime);
long timestamp = instant.toEpochMilli();
System.out.println(timestamp); // 输出 1577836800000
}
}
```