问题描述
问题:输入时间戳、时区,返回一个带时区的时间字符串?
代码如下:
long timestamp = 1647489600000L; // 2022-03-15 12:00:00 Asia/Shanghai
String timeZoneName = "America/New_York";
Instant instant = Instant.ofEpochMilli(timestamp);
ZonedDateTime zonedDateTime = ZonedDateTime.of(LocalDateTime.ofInstant(instant, ZoneId.systemDefault()),
TimeZone.getTimeZone(timeZoneName).toZoneId());
System.out.println(zonedDateTime);
ZonedDateTime zonedDateTime1 = ZonedDateTime.of(LocalDateTime.ofInstant(instant, ZoneId.systemDefault()),
TimeZone.getTimeZone("Asia/Shanghai").toZoneId());
System.out.println(zonedDateTime1);
复制代码
输出结果如下:
几个类简单说明一下:
-
Instant
可以将时间戳转换为本地日期/时间LocalDateTime
。 -
在
JDK 8