Java里utc时间转时间戳
时间: 2024-01-03 14:05:31 浏览: 161
以下是Java中将UTC时间转换为时间戳的方法:
```java
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String date = "2019-09-12T02:43:08.091Z";
long timestamp = simpleDateFormat.parse(date).getTime();
System.out.println(timestamp); // 输出:1568256188091
```
以上代码中,我们首先定义了一个UTC时间的格式化字符串,然后创建了一个SimpleDateFormat对象,并将其时区设置为UTC。接着,我们将UTC时间字符串解析为Date对象,并调用getTime()方法获取时间戳。
相关问题
java utc 时间戳 转 本地时区时间戳
要将UTC时间戳转换为本地时区时间戳,可以使用Java 8中的java.time和java.time.zone包。以下是一个示例代码:
```java
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) {
// 定义UTC时间戳(秒)
long utcTimestamp = 1626713523;
// 创建UTC时间对象
Instant instant = Instant.ofEpochSecond(utcTimestamp);
// 指定本地时区
ZoneId localZone = ZoneId.of("Asia/Shanghai");
// 将UTC时间转换为ZonedDateTime对象
ZonedDateTime utcDateTime = ZonedDateTime.ofInstant(instant, ZoneId.of("UTC"));
// 将UTC时间转换为本地时间
ZonedDateTime localDateTime = utcDateTime.withZoneSameInstant(localZone);
// 将本地时间转换为本地时间戳(秒)
long localTimestamp = localDateTime.toLocalDateTime().atZone(localZone).toEpochSecond();
System.out.println(localTimestamp);
}
}
```
在这个示例代码中,我们假设UTC时间戳为1626713523,本地时区为亚洲/上海。首先,我们从UTC时间戳创建一个Instant对象。然后,我们使用ZoneId类指定本地时区,并将Instant对象转换为ZonedDateTime对象。接下来,我们将ZonedDateTime对象转换为本地时间,并将其转换为本地时间戳。最后,我们打印输出本地时间戳。
java utc 时间戳 转 北京时区时间戳
要将UTC时间戳转换为北京时区时间戳,可以使用Java提供的标准时间库java.time,以下是一个示例代码:
```java
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
public class UtcToLocal {
public static void main(String[] args) {
// 定义UTC时间戳(秒)
long utcTimestamp = 1626713523;
// 创建Instant对象
Instant instant = Instant.ofEpochSecond(utcTimestamp);
// 指定时区为北京
ZoneId zoneId = ZoneId.of("Asia/Shanghai");
// 将Instant对象转换为LocalDateTime对象
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zoneId);
// 将LocalDateTime对象转换为北京时区时间戳(秒)
long localTimestamp = localDateTime.toEpochSecond(ZoneOffset.of("+8"));
System.out.println(localTimestamp);
}
}
```
在这个示例代码中,我们假设UTC时间戳为1626713523,本地时区为亚洲/上海。首先,我们从UTC时间戳创建一个Instant对象。然后,我们使用ZoneId指定时区为北京,并将Instant对象转换为LocalDateTime对象。最后,我们将LocalDateTime对象转换为北京时区时间戳,并打印输出。
阅读全文