技术活,该赏
关注+一键三连(点赞,评论,收藏)再看,养成好习惯
hutool实战(带你掌握里面的各种工具)目录
万字博文教你搞懂java源码的日期和时间相关用法
用途:对JDK8+中的LocalDateTime工具类封装
使用场景
对JDK8+中的LocalDateTime工具类封装
项目引用
此博文的依据:hutool-5.6.5版本源码
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.6.5</version>
</dependency>
方法摘要
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.now()
方法描述
当前时间,默认时区
支持版本及以上
参数描述:
参数名 | 描述 |
返回值:
{@link LocalDateTime}
参考案例:
Assert.assertNotNull(LocalDateTimeUtil.now()
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant)
方法描述
{@link Instant}转{@link LocalDateTime},使用默认时区
支持版本及以上
参数描述:
参数名 | 描述 |
Instant instant | instant {@link Instant} |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2020-01-23T12:23:56";
final DateTime dt = DateUtil.parse(dateStr);
LocalDateTime of = LocalDateTimeUtil.of(dt);
Assert.assertNotNull(of);
Assert.assertEquals(dateStr, of.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.ofUTC(java.time.Instant)
方法描述
{@link Instant}转{@link LocalDateTime},使用UTC时区
支持版本及以上
参数描述:
参数名 | 描述 |
Instant instant | instant {@link Instant} |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2020-01-23T12:23:56";
final DateTime dt = DateUtil.parse(dateStr);
of = LocalDateTimeUtil.ofUTC(dt.getTime());
Assert.assertEquals(dateStr, of.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(java.time.ZonedDateTime)
方法描述
{@link ZonedDateTime}转{@link LocalDateTime}
支持版本及以上
参数描述:
参数名 | 描述 |
ZonedDateTime zonedDateTime | zonedDateTime {@link ZonedDateTime} |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-21T11:23:56";
final DateTime dt = DateUtil.parse(dateStr);
//使用默认时区
LocalDateTime localDateTime = LocalDateTimeUtil.of(dt);
System.out.println(localDateTime);
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
System.out.println(zonedDateTime);
zonedDateTime = localDateTime.atZone( ZoneId.of("Asia/Shanghai"));
System.out.println(zonedDateTime);
LocalDateTime of = LocalDateTimeUtil.of(zonedDateTime);
Assert.assertNotNull(of);
Assert.assertEquals("2021-05-21T11:23:56", of.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant, java.time.ZoneId)
方法描述
{@link Instant}转{@link LocalDateTime}
支持版本及以上
参数描述:
参数名 | 描述 |
Instant instant | instant {@link Instant} |
ZoneId zoneId | zoneId 时区 |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-21T11:23:56";
final DateTime dt = DateUtil.parse(dateStr);
LocalDateTime of = LocalDateTimeUtil.of(dt.getTime(), ZoneId.of("UTC"));
Assert.assertNotNull(of);
Assert.assertEquals(dateStr, of.toString());
of = LocalDateTimeUtil.of(dt.getTime(), ZoneId.of("Asia/Shanghai"));
Assert.assertNotNull(of);
Assert.assertEquals("2021-05-21T19:23:56", of.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant, java.util.TimeZone)
方法描述
{@link Instant}转{@link LocalDateTime}
支持版本及以上
参数描述:
参数名 | 描述 |
Instant instant | instant {@link Instant} |
TimeZone timeZone | timeZone 时区 |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-21T11:23:56";
// 通过转换获取的Instant为UTC时间
Instant instant1 = DateUtil.parse(dateStr).toInstant();
LocalDateTime localDateTime = LocalDateTimeUtil.of(instant1,ZoneId.of("Asia/Shanghai"));
Assert.assertEquals("2021-05-21T19:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(long)
方法描述
毫秒转{@link LocalDateTime},使用默认时区
注意:此方法使用默认时区,如果非UTC,会产生时间偏移
### 支持版本及以上
参数描述:
参数名 | 描述 |
long epochMilli | epochMilli 从1970-01-01T00:00:00Z开始计数的毫秒数 |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-22 10:23:56";
Long time = DateUtil.parse(dateStr).getTime();
// 使用默认时区
LocalDateTime localDateTime = LocalDateTimeUtil.of(time);
Assert.assertEquals("2021-05-22T10:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.ofUTC(long)
方法描述
毫秒转{@link LocalDateTime},使用UTC时区
支持版本及以上
参数描述:
参数名 | 描述 |
long epochMilli | epochMilli 从1970-01-01T00:00:00Z开始计数的毫秒数 |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-22T10:23:56";
Long time = DateUtil.parse(dateStr).getTime();
// 使用UTC时区
LocalDateTime localDateTime = LocalDateTimeUtil.ofUTC(time);
Assert.assertEquals("2021-05-22T10:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(long, java.time.ZoneId)
方法描述
毫秒转{@link LocalDateTime},根据时区不同,结果会产生时间偏移
支持版本及以上
参数描述:
参数名 | 描述 |
long epochMilli | epochMilli 从1970-01-01T00:00:00Z开始计数的毫秒数 |
ZoneId zoneId | zoneId 时区 |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-22T10:23:56";
Long time = DateUtil.parse(dateStr).getTime();
LocalDateTime localDateTime = LocalDateTimeUtil.of(time,ZoneId.of("Asia/Shanghai"));
Assert.assertEquals("2021-05-22T18:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(long, java.util.TimeZone)
方法描述
毫秒转{@link LocalDateTime},结果会产生时间偏移
支持版本及以上
参数描述:
参数名 | 描述 |
long epochMilli | epochMilli 从1970-01-01T00:00:00Z开始计数的毫秒数 |
TimeZone timeZone | timeZone 时区 |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-22T10:23:56";
Long time = DateUtil.parse(dateStr).getTime();
LocalDateTime localDateTime = LocalDateTimeUtil.of(time, TimeZone.getTimeZone(ZoneId.of("Asia/Shanghai")));
Assert.assertEquals("2021-05-22T18:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(java.util.Date)
方法描述
{@link Date}转{@link LocalDateTime},使用默认时区
支持版本及以上
参数描述:
参数名 | 描述 |
Date date | date Date对象 |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-22 10:23:56";
DateTime date = DateUtil.parse(dateStr);
//使用默认时区
LocalDateTime localDateTime = LocalDateTimeUtil.of(date);
Assert.assertEquals("2021-05-22T10:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.of(java.time.temporal.TemporalAccessor)
方法描述
{@link TemporalAccessor}转{@link LocalDateTime},使用默认时区
支持版本及以上
参数描述:
参数名 | 描述 |
TemporalAccessor temporalAccessor | temporalAccessor {@link TemporalAccessor} |
返回值:
{@link LocalDateTime}
参考案例:
String dateStr = "2021-05-22T10:23:56";
//使用默认时区
TemporalAccessor temporalAccessor = DateTimeFormatter.ISO_DATE_TIME.parse(dateStr);
LocalDateTime localDateTime = LocalDateTimeUtil.of(temporalAccessor);
Assert.assertEquals("2021-05-22T10:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.ofDate(java.time.temporal.TemporalAccessor)
方法描述
{@link TemporalAccessor}转{@link LocalDate},使用默认时区
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
TemporalAccessor temporalAccessor | temporalAccessor {@link TemporalAccessor} |
返回值:
{@link LocalDate}
参考案例:
String dateStr = "2021-05-22T10:23:56";
//使用默认时区
TemporalAccessor temporalAccessor = DateTimeFormatter.ISO_DATE_TIME.parse(dateStr);
LocalDate localDate = LocalDateTimeUtil.ofDate(temporalAccessor);
Assert.assertEquals("2021-05-22", localDate.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence)
方法描述
解析日期时间字符串为{@link LocalDateTime},仅支持yyyy-MM-dd’T’HH:mm:ss格式,例如:2007-12-03T10:15:30
支持版本及以上
参数描述:
参数名 | 描述 |
CharSequence text | text 日期时间字符串 |
返回值:
{@link LocalDateTime}
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
Assert.assertEquals("2020-01-23T12:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence, java.time.format.DateTimeFormatter)
方法描述
解析日期时间字符串为{@link LocalDateTime},格式支持日期时间、日期、时间
支持版本及以上
参数描述:
参数名 | 描述 |
CharSequence text | text 日期时间字符串 |
DateTimeFormatter formatter | formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter} |
返回值:
{@link LocalDateTime}
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56", DateTimeFormatter.ISO_DATE_TIME);
Assert.assertEquals("2020-01-23T12:23:56", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence, java.lang.String)
方法描述
解析日期时间字符串为{@link LocalDateTime}
支持版本及以上
参数描述:
参数名 | 描述 |
CharSequence text | text 日期时间字符串 |
String format | format 日期格式,类似于yyyy-MM-dd HH:mm:ss,SSS |
返回值:
{@link LocalDateTime}
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23", DatePattern.NORM_DATE_PATTERN);
Assert.assertEquals("2020-01-23T00:00", localDateTime.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence)
方法描述
解析日期时间字符串为{@link LocalDate},仅支持yyyy-MM-dd’T’HH:mm:ss格式,例如:2007-12-03T10:15:30
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
CharSequence text | text 日期时间字符串 |
返回值:
{@link LocalDate}
参考案例:
LocalDate localDate = LocalDateTimeUtil.parseDate("2020-01-23");
Assert.assertEquals("2020-01-23", localDate.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence, java.time.format.DateTimeFormatter)
方法描述
解析日期时间字符串为{@link LocalDate},格式支持日期
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
CharSequence text | text 日期时间字符串 |
DateTimeFormatter formatter | formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter} |
返回值:
{@link LocalDate}
参考案例:
LocalDate localDate = LocalDateTimeUtil.parseDate("2020-01-23");
localDate = LocalDateTimeUtil.parseDate("2020-01-23T12:23:56", DateTimeFormatter.ISO_DATE_TIME);
Assert.assertEquals("2020-01-23", localDate.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence, java.lang.String)
方法描述
解析日期字符串为{@link LocalDate}
支持版本及以上
参数描述:
参数名 | 描述 |
CharSequence text | text 日期字符串 |
String format | format 日期格式,类似于yyyy-MM-dd |
返回值:
{@link LocalDateTime}
参考案例:
//第一个参数和第二个参数格式保持一致
LocalDate localDate = LocalDateTimeUtil.parseDate("2020-01-23 12:23:56","yyyy-MM-dd hh:mm:ss");
Assert.assertEquals("2020-01-23", localDate.toString());
localDate = LocalDateTimeUtil.parseDate("2020/01/23 12:23:56","yyyy/MM/dd hh:mm:ss");
Assert.assertEquals("2020-01-23", localDate.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.formatNormal(java.time.LocalDateTime)
方法描述
格式化日期时间为yyyy-MM-dd HH:mm:ss格式
支持版本及以上
5.3.11
参数描述:
参数名 | 描述 |
LocalDateTime time | time {@link LocalDateTime} |
返回值:
格式化后的字符串
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
String format = LocalDateTimeUtil.formatNormal(localDateTime);
Assert.assertEquals("2020-01-23 12:23:56", format);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDateTime, java.time.format.DateTimeFormatter)
方法描述
格式化日期时间为指定格式
支持版本及以上
参数描述:
参数名 | 描述 |
LocalDateTime time | time {@link LocalDateTime} |
DateTimeFormatter formatter | formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter} |
返回值:
格式化后的字符串
参考案例:
LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
String format = LocalDateTimeUtil.format(localDateTime, DateTimeFormatter.ISO_DATE_TIME);
Assert.assertEquals("2020-01-23T12:23:56", format);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDateTime, java.lang.String)
方法描述
格式化日期时间为指定格式
支持版本及以上
参数描述:
参数名 | 描述 |
LocalDateTime time | time {@link LocalDateTime} |
String format | format 日期格式,类似于yyyy-MM-dd HH:mm:ss,SSS |
返回值:
格式化后的字符串
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
String format = LocalDateTimeUtil.format(localDateTime, DatePattern.NORM_DATETIME_PATTERN);
Assert.assertEquals("2020-01-23 12:23:56", format);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.formatNormal(java.time.LocalDate)
方法描述
格式化日期时间为yyyy-MM-dd格式
支持版本及以上
5.3.11
参数描述:
参数名 | 描述 |
LocalDate date | date {@link LocalDate} |
返回值:
格式化后的字符串
参考案例:
final LocalDate date = LocalDate.parse("2020-01-23");
String format = LocalDateTimeUtil.format(date, DatePattern.NORM_DATE_PATTERN);
Assert.assertEquals("2020-01-23", format);
format = LocalDateTimeUtil.formatNormal(date);
Assert.assertEquals("2020-01-23", format);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDate, java.time.format.DateTimeFormatter)
方法描述
格式化日期时间为指定格式
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
LocalDate date | date {@link LocalDate} |
DateTimeFormatter formatter | formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter} |
返回值:
格式化后的字符串
参考案例:
final LocalDate date = LocalDate.parse("2021-05-22");
String format = LocalDateTimeUtil.format(date, DateTimeFormatter.ISO_DATE);
Assert.assertEquals("2021-05-22", format);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDate, java.lang.String)
方法描述
格式化日期时间为指定格式
支持版本及以上
5.3.10
参数描述:
参数名 | 描述 |
LocalDate date | date {@link LocalDate} |
String format | format 日期格式,类似于yyyy-MM-dd |
返回值:
格式化后的字符串
参考案例:
final LocalDate date = LocalDate.parse("2020-01-23");
String format = LocalDateTimeUtil.format(date, DatePattern.NORM_DATE_PATTERN);
Assert.assertEquals("2020-01-23", format);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.offset(java.time.LocalDateTime, long, java.time.temporal.TemporalUnit)
方法描述
日期偏移,根据field不同加不同值(偏移会修改传入的对象)
支持版本及以上
参数描述:
参数名 | 描述 |
LocalDateTime time | time {@link LocalDateTime} |
long number | number 偏移量,正数为向后偏移,负数为向前偏移 |
TemporalUnit field | field 偏移单位,见{@link ChronoUnit},不能为null |
返回值:
偏移后的日期时间
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
LocalDateTime offset = LocalDateTimeUtil.offset(localDateTime, 1, ChronoUnit.DAYS);
// 非同一对象
Assert.assertNotSame(localDateTime, offset);
Assert.assertEquals("2020-01-24T12:23:56", offset.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.between(java.time.LocalDateTime, java.time.LocalDateTime)
方法描述
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。
返回结果为{@link Duration}对象,通过调用toXXX方法返回相差单位 ### 支持版本及以上
参数描述:
参数名 | 描述 |
LocalDateTime startTimeInclude | startTimeInclude 开始时间(包含) |
LocalDateTime endTimeExclude | endTimeExclude 结束时间(不包含) |
返回值:
时间差 {@link Duration}对象
参考案例:
final Duration between = LocalDateTimeUtil.between(
LocalDateTimeUtil.parse("2019-02-02T00:00:00"),
LocalDateTimeUtil.parse("2020-02-02T00:00:00"));
Assert.assertEquals(365, between.toDays());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.between(java.time.LocalDateTime, java.time.LocalDateTime, java.time.temporal.ChronoUnit)
方法描述
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。
返回结果为时间差的long值 ### 支持版本及以上 5.4.5 ### 参数描述: 参数名 | 描述 ---|--- LocalDateTime startTimeInclude |
startTimeInclude 开始时间(包括) LocalDateTime endTimeExclude | endTimeExclude 结束时间(不包括) ChronoUnit unit | unit 时间差单位
返回值:
时间差
参考案例:
final long betweenWeek = DateUtil.betweenWeek(
DateUtil.parse("2020-11-21"),
DateUtil.parse("2020-11-23"), false);
final long betweenWeek2 = LocalDateTimeUtil.between(
LocalDateTimeUtil.parse("2020-11-21", "yyy-MM-dd"),
LocalDateTimeUtil.parse("2020-11-23", "yyy-MM-dd"),
ChronoUnit.WEEKS);
Assert.assertEquals(betweenWeek, betweenWeek2);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.betweenPeriod(java.time.LocalDate, java.time.LocalDate)
方法描述
获取两个日期的表象时间差,如果结束时间早于开始时间,获取结果为负。
比如2011年2月1日,和2021年8月11日,日相差了10天,月相差6月 ### 支持版本及以上 5.4.5 ### 参数描述: 参数名 | 描述 ---|--- LocalDate startTimeInclude |
startTimeInclude 开始时间(包括) LocalDate endTimeExclude | endTimeExclude 结束时间(不包括)
返回值:
时间差
参考案例:
final LocalDate localDate1= LocalDate.parse("2021-05-22");
final LocalDate localDate2= LocalDate.parse("2021-06-23");
Period period = LocalDateTimeUtil.betweenPeriod(localDate1,localDate2);
Assert.assertEquals(1, period.getMonths());
Assert.assertEquals(1, period.getDays());
period = LocalDateTimeUtil.betweenPeriod(localDate2,localDate1);
Assert.assertEquals(-1, period.getMonths());
Assert.assertEquals(-1, period.getDays());
final LocalDate localDate3= LocalDate.parse("2021-06-22");
period = LocalDateTimeUtil.betweenPeriod(localDate1,localDate3);
Assert.assertEquals(1, period.getMonths());
Assert.assertEquals(0, period.getDays());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.beginOfDay(java.time.LocalDateTime)
方法描述
修改为一天的开始时间,例如:2020-02-02 00:00:00,000
支持版本及以上
参数描述:
参数名 | 描述 |
LocalDateTime time | time 日期时间 |
返回值:
一天的开始时间
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
final LocalDateTime beginOfDay = LocalDateTimeUtil.beginOfDay(localDateTime);
Assert.assertEquals("2020-01-23T00:00", beginOfDay.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.endOfDay(java.time.LocalDateTime)
方法描述
修改为一天的结束时间,例如:2020-02-02 23:59:59,999
支持版本及以上
参数描述:
参数名 | 描述 |
LocalDateTime time | time 日期时间 |
返回值:
一天的结束时间
参考案例:
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
final LocalDateTime endOfDay = LocalDateTimeUtil.endOfDay(localDateTime);
Assert.assertEquals("2020-01-23T23:59:59.999999999", endOfDay.toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.LocalDateTimeUtil.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 = LocalDateTimeUtil.toEpochMilli(localDate);
Assert.assertEquals(DateUtil.parse(dateStr).getTime(), time);
源码解析:
链接:待补充