Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId,ZonedDateTime是用来处理时区相关的时间。! u+ M6 P$ _) T: e0 S& B! n3 a, `( {
4 K" X; n! v- [! f) Q/ s
1. ZonedDateTime->时间戳
( N2 c/ i+ r" C" @1 K6 Xpackage 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
}
} 输出量:
1 [7 T* Q/ u3 E6 }+ u# h8 w0 G
% K% j/ D6 d" B# L& E' q8 N
2.时间戳-> ZonedDateTime; _0 F) i, L, x4 [% V# p* G- a$ Q) q
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
}
} 输出量:
. I/ a3 ?; ?- k( T) M$ r4 z1 |1 O
' }# m8 ^7 D0 E( v |