java 時間時區類

 時間時區類

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章