10hutool实战:TemporalAccessorUtil{TemporalAccessor} 工具类封装
【摘要】
技术活,该赏
点赞再看,养成习惯
12
hutool实战(带你掌握里面的各种工具)目录
万字博文教你搞懂java源码的日期和时间相关用法
用途:TemporalAccessor 工具类封装
使...
技术活,该赏
点赞再看,养成习惯
- 1
- 2
用途:TemporalAccessor 工具类封装
使用场景
TemporalAccessor 的实现类包含
- Instant
- LocalDateTime
- ZonedDateTime
- OffsetDateTime
- LocalDate
- LocalTime
- OffsetTime
项目引用
此博文的依据:hutool-5.6.5版本源码
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.6.5</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
方法摘要
方法 | 描述 |
---|---|
cn.hutool.core.date.TemporalAccessorUtil.get(java.time.temporal.TemporalAccessor, java.time.temporal.TemporalField) |
安全获取时间的某个属性,属性不存在返回0
|
cn.hutool.core.date.TemporalAccessorUtil.format(java.time.temporal.TemporalAccessor, java.time.format.DateTimeFormatter) |
格式化日期时间为指定格式
|
cn.hutool.core.date.TemporalAccessorUtil.format(java.time.temporal.TemporalAccessor, java.lang.String) |
格式化日期时间为指定格式
|
cn.hutool.core.date.TemporalAccessorUtil.toEpochMilli(java.time.temporal.TemporalAccessor) |
{@link TemporalAccessor}转换为 时间戳(从1970-01-01T00:00:00Z开始的毫秒数)
|
cn.hutool.core.date.TemporalAccessorUtil.toInstant(java.time.temporal.TemporalAccessor) |
{@link TemporalAccessor}转换为 {@link Instant}对象
|
方法明细
方法名称:cn.hutool.core.date.TemporalAccessorUtil.get(java.time.temporal.TemporalAccessor, java.time.temporal.TemporalField)
方法描述
安全获取时间的某个属性,属性不存在返回0
支持版本及以上
参数描述:
参数名 | 描述 |
---|---|
TemporalAccessor temporalAccessor |
temporalAccessor 需要获取的时间对象
|
TemporalField field |
field 需要获取的属性
|
返回值:
时间的值,如果无法获取则默认为 0
参考案例:
String dateStr = "2021-05-22T14:05:20";
LocalDateTime localDate = LocalDateTime.parse(dateStr);
//ChronoField 为ChronoField的实现类/枚举
Assert.assertEquals(2021, TemporalAccessorUtil.get(localDate, ChronoField.YEAR));
Assert.assertEquals(5, TemporalAccessorUtil.get(localDate, ChronoField.MONTH_OF_YEAR));
Assert.assertEquals(22, TemporalAccessorUtil.get(localDate, ChronoField.DAY_OF_MONTH));
Assert.assertEquals(14, TemporalAccessorUtil.get(localDate, ChronoField.HOUR_OF_DAY));
Assert.assertEquals(05, TemporalAccessorUtil.get(localDate, ChronoField.MINUTE_OF_HOUR));
Assert.assertEquals(20, TemporalAccessorUtil.get(localDate, ChronoField.SECOND_OF_MINUTE));
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
源码解析:
链接:待补充
- 1
方法明细
方法名称:cn.hutool.core.date.TemporalAccessorUtil.format(java.time.temporal.TemporalAccessor, java.time.format.DateTimeFormatter)
方法描述
格式化日期时间为指定格式
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
---|---|
TemporalAccessor time |
time {@link TemporalAccessor}
|
DateTimeFormatter formatter |
formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter}
|
返回值:
格式化后的字符串
参考案例:
String dateStr = "2021-05-22T14:05:20";
LocalDateTime localDateTime = LocalDateTime.parse(dateStr);
Assert.assertEquals(dateStr,TemporalAccessorUtil.format(localDateTime,DateTimeFormatter.ISO_LOCAL_DATE_TIME));
- 1
- 2
- 3
源码解析:
链接:待补充
- 1
方法明细
方法名称:cn.hutool.core.date.TemporalAccessorUtil.format(java.time.temporal.TemporalAccessor, java.lang.String)
方法描述
格式化日期时间为指定格式
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
---|---|
TemporalAccessor time |
time {@link TemporalAccessor}
|
String format |
format 日期格式
|
返回值:
格式化后的字符串
参考案例:
String dateStr = "2021-05-22";
LocalDate localDate = LocalDate.parse(dateStr);
Assert.assertEquals(dateStr,TemporalAccessorUtil.format(localDate,"yyyy-MM-dd"));
- 1
- 2
- 3
源码解析:
链接:待补充
- 1
方法明细
方法名称:cn.hutool.core.date.TemporalAccessorUtil.toEpochMilli(java.time.temporal.TemporalAccessor)
方法描述
{@link TemporalAccessor}转换为 时间戳(从1970-01-01T00:00:00Z开始的毫秒数)
支持版本及以上
5.4.1
参数描述:
参数名 | 描述 |
---|---|
TemporalAccessor temporalAccessor |
temporalAccessor Date对象
|
返回值:
{@link Instant}对象
参考案例:
String dateStr = "2021-05-22";
//TemporalAccessor 的实现类包含Instant LocalDateTime ZonedDateTime OffsetDateTime LocalDate LocalTime OffsetTime
LocalDate localDate = LocalDate.parse(dateStr);
//Date对象
long time = TemporalAccessorUtil.toEpochMilli(localDate);
Assert.assertEquals(DateUtil.parse(dateStr).getTime(), time);
- 1
- 2
- 3
- 4
- 5
- 6
源码解析:
链接:待补充
- 1
方法明细
方法名称:cn.hutool.core.date.TemporalAccessorUtil.toInstant(java.time.temporal.TemporalAccessor)
方法描述
{@link TemporalAccessor}转换为 {@link Instant}对象
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
---|---|
TemporalAccessor temporalAccessor |
temporalAccessor Date对象
|
返回值:
{@link Instant}对象
参考案例:
LocalDateTime localDateTime = LocalDateTime.parse("2021-05-22T08:30:00", DateTimeFormatter.ISO_DATE_TIME);
Instant instant = TemporalAccessorUtil.toInstant(localDateTime);
Assert.assertEquals("2021-05-22T00:30:00Z", instant.toString());
- 1
- 2
- 3
源码解析:
链接:待补充
- 1
文章来源: xiaoxuzhu.blog.csdn.net,作者:小虚竹,版权归原作者所有,如需转载,请联系作者。
原文链接:xiaoxuzhu.blog.csdn.net/article/details/117431538
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)