時間時區類
LocalDate:2014-05-14T
LocalTime:15:33:05.941
ZoneId:+08:00[Asia/Shanghai]
LocalDateTime:2014-05-14T 15:33:05.941
ZonedDateTime:2014-05-14T 15:33:05.941 +08:00[Asia/Shanghai]
各個類所代表的時間部分
只有 ZonedDateTime 帶有時區部分,
2014-05-14T 15:33:05.941 +08:00[Asia/Shanghai] |
||
LocalDate | LocalTime | ZoneId |
LocalDateTime | -- | |
ZonedDateTime |
給時間添加時區
public static void main(String[] args) {
final LocalDate localDate = LocalDate.of(2019, 4, 21);
final ZoneId zone = ZoneId.of("Europe/Rome");
final ZonedDateTime zonedDateTime = localDate.atStartOfDay(zone);
System.out.println(zonedDateTime);
final Instant now = Instant.now();
final ZonedDateTime zonedDateTime1 = now.atZone(zone);
System.out.println(zonedDateTime1);
}
結果:
2019-04-21T00:00+02:00[Europe/Rome]
2019-04-21T08:48:59.646+02:00[Europe/Rome]
LocalDateTime與Instant之間轉換
public static void main(String[] args) {
final LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
final Instant instant = localDateTime.toInstant(ZoneOffset.of("-05:00"));
System.out.println(instant);
final LocalDateTime localDateTime1 = LocalDateTime.ofInstant(instant, ZoneId.of("Europe/Rome"));
System.out.println(localDateTime1);
}
結果:
2019-04-21T15:10:30.602
2019-04-21T20:10:30.602Z
2019-04-21T22:10:30.602