now 【指定时区 当前时间】
代码语言:java
复制// 2024-04-21T18:18:35 执行如下代码
OffsetDateTime.now()); // 2024-04-21T18:18:35.161056700 08:00
OffsetDateTime.now(ZoneId.of("Asia/Tokyo"))); // 2024-04-21T19:18:35.162570500 09:00
OffsetDateTime.now(Clock.systemUTC())); // 2024-04-21T10:18:35.162570500Z
of 【给时间 附上偏移量而已 没时区换算】
代码语言:java
复制OffsetDateTime.of(2019, 7, 7, 20, 18, 18, 888, ZoneOffset.ofHours(9))); // 2019-07-07T20:18:18.000000888 09:00 【指定时区】
OffsetDateTime.of(LocalDate.of(2019, 7, 7), LocalTime.of(20, 18, 18, 888), ZoneOffset.ofHours(9))); // 2019-07-07T20:18:18.000000888 09:00 【指定时区】
LocalDateTime LOCAL_DATE_TIME = LocalDateTime.of(2019, 7, 7, 20, 18, 18, 888);
OffsetDateTime.of(LOCAL_DATE_TIME, ZoneOffset.ofHours(9))); //2019-07-07T20:18:18.000000888 09:00 【指定时区】
OffsetDateTime.of(LOCAL_DATE_TIME, ZoneOffset.ofHours(8))); //2019-07-07T20:18:18.000000888 08:00 【指定时区】
ofInstant 【存在时区转换】
代码语言:java
复制LocalDateTime LOCAL_DATE_TIME = LocalDateTime.of(2019, 7, 7, 20, 18, 18, 888);
OffsetDateTime.ofInstant(LOCAL_DATE_TIME.toInstant(ZoneOffset.ofHours(9)), ZoneOffset.ofHours(9))); //2019-07-07T20:18:18.000000888 09:00
OffsetDateTime.ofInstant(LOCAL_DATE_TIME.toInstant(ZoneOffset.ofHours(9)), ZoneOffset.ofHours(8))); //2019-07-07T19:18:18.000000888 08:00
parse 【纯类型转换而已】
代码语言:java
复制OffsetDateTime.parse("2019-07-07T20:18:18.000000888 09:00")); //2019-07-07T20:18:18.000000888 09:00
OffsetDateTime.parse("2019-07-07T20:18:18 09:00")); //2019-07-07T20:18:18 09:00
OffsetDateTime.parse("2019-07-07T20:18 09:00")); //2019-07-07T20:18 09:00
LocalDateTime 【给时间 附上偏移量而已 不换算】
代码语言:java
复制LocalDateTime LOCAL_DATE_TIME = LocalDateTime.of(2019, 7, 7, 20, 18, 18, 888);
LOCAL_DATE_TIME.atOffset(ZoneOffset.ofHours(9))); //2019-07-07T20:18:18.000000888 09:00
LOCAL_DATE_TIME.atOffset(ZoneOffset.ofHours(8))); //2019-07-07T20:18:18.000000888 08:00
ZonedDateTime 【时区 和 偏移量 转换而已】
代码语言:java
复制ZonedDateTime ZONED_DATE_TIME = ZonedDateTime.of(2019, 7, 7, 20, 18, 18, 888, ZoneId.of("Asia/Tokyo"));
ZONED_DATE_TIME.toOffsetDateTime()); //2019-07-07T20:18:18.000000888 09:00
Date 【存在时区转换】
代码语言:javascript
复制Date DATE = new Date(1562501898000L);
DATE.toInstant().atZone(ZonedDateTime.now().getZone())); //2019-07-07T20:18:18 08:00[Asia/Shanghai]
DATE.toInstant().atZone(ZonedDateTime.now().getOffset())); //2019-07-07T20:18:18 08:00