2hutool实战:DateUtil-常用的时间类型转换

2hutool实战:DateUtil-常用的时间类型转换,第1张

技术活,该赏
关注+一键三连(点赞,评论,收藏)再看,养成好习惯

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

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


用途:常用的时间类型转换 使用场景

常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换

项目引用

此博文的依据:hutool-5.6.5版本源码

        <dependency>
			<groupId>cn.hutoolgroupId>
			<artifactId>hutool-coreartifactId>
			<version>5.6.5version>
		dependency>
方法摘要
方法描述
cn.hutool.core.date.DateUtil.dateNew(java.util.Date) 根据已有{@link Date} 产生新的{@link DateTime}对象
cn.hutool.core.date.DateUtil.date(long) Long类型时间转为{@link DateTime}
只支持毫秒级别时间戳,如果需要秒级别时间戳,请自行×1000
cn.hutool.core.date.DateUtil.date(java.util.Calendar) {@link Calendar}类型时间转为{@link DateTime}
始终根据已有{@link Calendar} 产生新的{@link DateTime}对象
cn.hutool.core.date.DateUtil.date(java.time.temporal.TemporalAccessor) {@link TemporalAccessor}类型时间转为{@link DateTime}
始终根据已有{@link TemporalAccessor} 产生新的{@link DateTime}对象
方法明细 方法名称:cn.hutool.core.date.DateUtil.date(java.util.Date) 方法描述

{@link Date}类型时间转为{@link DateTime}

如果date本身为DateTime对象,则返回强转后的对象,否则新建一个DateTime对象

支持版本及以上

3.0.7

参数描述:
参数名描述
Date date date Long类型Date(Unix时间戳)
返回值:

时间对象

参考案例:
		//如果date本身为DateTime对象,则返回强转后的对象,否则新建一个DateTime对象
		Date date1 = DateUtil.date(new Date());
		Assert.assertNotNull(date1);

		Date date2 = DateUtil.date(DateUtil.date());
		Assert.assertNotNull(date2);
源码解析:

2hutool源码分析:DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换

方法明细 方法名称:cn.hutool.core.date.DateUtil.dateNew(java.util.Date) 方法描述

根据已有{@link Date} 产生新的{@link DateTime}对象

支持版本及以上

4.3.1

参数描述:
参数名描述
Date date date Date对象
返回值:

{@link DateTime}对象

参考案例:
		//根据已有{@link Date} 产生新的{@link DateTime}对象
		Date nowDate = new Date();
		System.out.println(nowDate.toString());
		Date date5 = DateUtil.dateNew(new Date());
		System.out.println(date5.toString());
		Assert.assertNotNull(date5);
源码解析:

2hutool源码分析:DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换

方法明细 方法名称:cn.hutool.core.date.DateUtil.date(long) 方法描述

Long类型时间转为{@link DateTime}

只支持毫秒级别时间戳,如果需要秒级别时间戳,请自行×1000

支持版本及以上 参数描述:
参数名描述
long date date Long类型Date(Unix时间戳)
返回值:

时间对象

参考案例:
//只支持毫秒级别时间戳,如果需要秒级别时间戳,请自行×1000
		Date date6 = DateUtil.date(System.currentTimeMillis());
		System.out.println(date6);
		Assert.assertNotNull(date6);
源码解析:

2hutool源码分析:DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换

方法明细 方法名称:cn.hutool.core.date.DateUtil.date(java.util.Calendar) 方法描述

{@link Calendar}类型时间转为{@link DateTime}

始终根据已有{@link Calendar} 产生新的{@link DateTime}对象

支持版本及以上 参数描述:
参数名描述
Calendar calendar calendar {@link Calendar}
返回值:

时间对象

参考案例:
		//DateTime 和 Calendar的转换
		DateTime date7 = DateUtil.date();
		Calendar calendar = date7.toCalendar();
		DateUtil.date(calendar);
		Assert.assertNotNull(date7);
源码解析:

2hutool源码分析:DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换

方法明细 方法名称:cn.hutool.core.date.DateUtil.date(java.time.temporal.TemporalAccessor) 方法描述

{@link TemporalAccessor}类型时间转为{@link DateTime}

始终根据已有{@link TemporalAccessor} 产生新的{@link DateTime}对象

支持版本及以上

5.0.0

参数描述:
参数名描述
TemporalAccessor temporalAccessor temporalAccessor {@link TemporalAccessor},常用子类: {@link LocalDateTime}、 LocalDate
返回值:

时间对象

参考案例:
		//TemporalAccessor类型时间转换为DateTime
		String str = "31-Aug-2020";
		DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.US);
		//temporalAccessor {@link TemporalAccessor},常用子类: {@link LocalDateTime}、 LocalDate
		LocalDateTime localDateTime = LocalDate.parse(str, dtf).atStartOfDay();
		Date date1 = DateUtil.date(localDateTime);
		System.out.println(date1);
		Assert.assertNotNull(date1);
源码解析:

2hutool源码分析:DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/733141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存