前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >如何构造一个 OffsetDateTime()

如何构造一个 OffsetDateTime()

原创
作者头像
张紫娃
修改2024-12-27 11:02:28
修改2024-12-27 11:02:28
25300
代码可运行
举报
运行总次数:0
代码可运行

如何构造一个 OffsetDateTime()

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 【XXX→instant→OffsetDateTime 可借此进行时区转换】

代码语言:java
复制
Instant instant = LocalDateTime.of(2019, 7, 7, 20, 18, 18, 888).toInstant(ZoneOffset.ofHours(9));

OffsetDateTime.ofInstant(instant, ZoneOffset.ofHours(9))); //2019-07-07T20:18:18.000000888+09:00
OffsetDateTime.ofInstant(instant, ZoneOffset.ofHours(8))); //2019-07-07T19:18:18.000000888+08:00

parse 【单纯解析值 string→OffsetDateTime

代码语言: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

atOffset LocalDateTime → OffsetDateTime:附上偏移量而已

代码语言:java
复制
LocalDateTime local_date_time = LocalDateTime.of(2019, 7, 7, 20, 18, 18, 888);
OffsetDateTime offsetDateTime = local_date_time.atOffset(ZoneOffset.ofHours(9)););   //2019-07-07T20:18:18.000000888+09:00
OffsetDateTime offsetDateTime = local_date_time.atOffset(ZoneOffset.ofHours(8)););   //2019-07-07T20:18:18.000000888+08:00

toOffsetDateTime 【ZonedDateTime→OffsetDateTime:时区转为偏移量而已】

代码语言:java
复制
ZonedDateTime zoned_date_time = ZonedDateTime.of(2019, 7, 7, 20, 18, 18, 888, ZoneId.of("Asia/Tokyo"));
OffsetDateTime offsetDateTime = zoned_date_time.toOffsetDateTime(); //2019-07-07T20:18:18.000000888+09:00

Date【Date→instant→OffsetDateTime 可借此进行时区转换】

代码语言:javascript
代码运行次数:0
复制
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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何构造一个 OffsetDateTime()
    • now 【可指定时区】
    • of 【单纯构造值】
    • ofInstant 【XXX→instant→OffsetDateTime 可借此进行时区转换】
    • parse 【单纯解析值 string→OffsetDateTime 】
    • atOffset 【LocalDateTime → OffsetDateTime:附上偏移量而已】
    • toOffsetDateTime 【ZonedDateTime→OffsetDateTime:时区转为偏移量而已】
    • Date【Date→instant→OffsetDateTime 可借此进行时区转换】
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档