真诚与朴实是天才的宝贵品质。——斯坦尼斯拉夫斯基

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
System.out.println("下面的是两个默认时区的LocalDateTime");
final LocalDateTime localDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
final LocalDateTime localDateTime1 = LocalDateTime.now();
System.out.println(localDateTime);
System.out.println(localDateTime1);
System.out.println("下面的是两个通过Date.from()拿到的默认时区的Date");
// 这里需要使用ZonedDateTime
final Date from = Date.from(Instant.from(ZonedDateTime.now()));
// 这里需要使用OffsetDateTime
final Date from1 = Date.from(localDateTime1.toInstant(OffsetDateTime.now().getOffset()));
System.out.println(from);
System.out.println(from1);
System.out.println("下面的是通过LocalDateTime.ofInstant()拿到的不同时区的LocalDateTime");
// 国际标准时间
final LocalDateTime localDateTime2 = LocalDateTime.ofInstant(Instant.from(LocalDateTime.now().toInstant(ZoneOffset.UTC)), ZoneId.systemDefault());
// 自定义偏移时区 东8区(北京时区) 支持 +h, +hh, +hhmm, +hh:mm, +hhmmss, +hh:mm:ss
final LocalDateTime localDateTime3 = LocalDateTime.ofInstant(Instant.from(LocalDateTime.now().toInstant(ZoneOffset.of("+08:00"))), ZoneId.systemDefault());
System.out.println(localDateTime2);
System.out.println(localDateTime3);
System.out.println("下面的是通过Date.from()拿到的不同时区的date");
// 国际标准时间
final Date from2 = Date.from(Instant.from(LocalDateTime.now().toInstant(ZoneOffset.UTC)));
// 最小时区
final Date from3 = Date.from(Instant.from(LocalDateTime.now().toInstant(ZoneOffset.MIN)));
// 最大时区
final Date from4 = Date.from(Instant.from(LocalDateTime.now().toInstant(ZoneOffset.MAX)));
// 自定义偏移时区 东8区(北京时区) 支持 +h, +hh, +hhmm, +hh:mm, +hhmmss, +hh:mm:ss
final Date from5 = Date.from(Instant.from(LocalDateTime.now().toInstant(ZoneOffset.of("+8"))));
System.out.println(from2);
System.out.println(from3);
System.out.println(from4);
System.out.println(from5);

image-20210328133943751