10hutool实战:TemporalAccessorUtil{TemporalAccessor} 工具类封装

举报
小虚竹 发表于 2021/10/19 00:00:34 2021/10/19
【摘要】 技术活,该赏 点赞再看,养成习惯 12 hutool实战(带你掌握里面的各种工具)目录 万字博文教你搞懂java源码的日期和时间相关用法 用途:TemporalAccessor 工具类封装 使...
技术活,该赏
点赞再看,养成习惯

  
 
  • 1
  • 2

hutool实战(带你掌握里面的各种工具)目录

万字博文教你搞懂java源码的日期和时间相关用法


用途: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

支持版本及以上

参数描述:

参数名 描述
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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。