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

如何构造一个 OffsetDateTime()

原创
作者头像
张紫娃
修改2024-07-31 08:04:00
2200
修改2024-07-31 08:04:00
举报
文章被收录于专栏:张紫娃的学习笔记

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • now 【指定时区 当前时间】
  • of 【给时间 附上偏移量而已 没时区换算】
  • ofInstant 【存在时区转换】
  • parse 【纯类型转换而已】
  • LocalDateTime 【给时间 附上偏移量而已 不换算】
  • ZonedDateTime 【时区 和 偏移量 转换而已】
  • Date 【存在时区转换】
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档