Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId,ZonedDateTime是用来处理时区相关的时间。
4 V4 L8 T6 u1 j6 {& S
) }" \8 h0 [3 L, W
1. ZonedDateTime->时间戳
# x! d3 R6 i' G, X t+ p: w
- package com.mkyong.jdbc;
-
- import java.sql.Timestamp;
- import java.time.ZonedDateTime;
-
- public class TimeExample1 {
-
- public static void main(String[] args) {
-
- ZonedDateTime now = ZonedDateTime.now();
-
- // 1. ZonedDateTime to TimeStamp
- Timestamp timestamp = Timestamp.valueOf(now.toLocalDateTime());
-
- // 2. ZonedDateTime to TimeStamp , no different
- Timestamp timestamp2 = Timestamp.from(now.toInstant());
-
- System.out.println(now); // 2019-06-19T14:12:13.585294800+08:00[Asia/Kuala_Lumpur]
-
- System.out.println(timestamp); // 2019-06-19 14:12:13.5852948
-
- System.out.println(timestamp2); // 2019-06-19 14:12:13.5852948
-
- }
- }
输出量:
. }& d" t" ^7 ]
/ _! A2 w& u/ {& V3 Q2 ~7 ^3 {( o2.时间戳-> ZonedDateTime
# W8 {, M" G4 m" S: u8 D4 v- r- package com.mkyong;
-
- import java.sql.Timestamp;
- import java.time.Instant;
- import java.time.LocalDateTime;
- import java.time.ZoneId;
- import java.time.ZonedDateTime;
-
- public class TimeExample2 {
-
- public static void main(String[] args) {
-
- Timestamp timestamp = Timestamp.from(Instant.now());
-
- LocalDateTime localDateTimeNoTimeZone = timestamp.toLocalDateTime();
-
- ZonedDateTime zonedDateTime1 = localDateTimeNoTimeZone.atZone(ZoneId.of("+08:00"));
-
- ZonedDateTime zonedDateTime2 = localDateTimeNoTimeZone.atZone(ZoneId.of("Asia/Kuala_Lumpur"));
-
- ZonedDateTime zonedDateTime3 = localDateTimeNoTimeZone.atZone(ZoneId.systemDefault());
-
- ZonedDateTime zonedDateTime4 = localDateTimeNoTimeZone.atZone(ZoneId.of("-08:00"));
-
- System.out.println(timestamp); // 2019-06-19 14:08:23.4458984
-
- System.out.println(zonedDateTime1); // 2019-06-19T14:08:23.445898400+08:00
-
- System.out.println(zonedDateTime2); // 2019-06-19T14:08:23.445898400+08:00[Asia/Kuala_Lumpur]
-
- System.out.println(zonedDateTime3); // 2019-06-19T14:08:23.445898400+08:00[Asia/Kuala_Lumpur]
-
- System.out.println(zonedDateTime4); // 2019-06-19T14:08:23.445898400-08:00
-
- }
-
- }
输出量:- L) Z- \0 [, @/ I3 j" d
, H: ? C% S2 {/ `- ]2 E/ x+ i2 s
|