当前位置:网站首页>4hutool实战:DateUtil-格式化时间[通俗易懂]
4hutool实战:DateUtil-格式化时间[通俗易懂]
2022-07-01 09:39:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
java的SimpleDateFormat线程不安全出问题了,虚竹教你多种解决方案(万字长文*建议收藏)
java8 新日期时间API((一)JSR-310:ZoneId 时区和偏移量)
java8 新日期时间API((二)JSR-310:常用的日期时间API)
java8 新日期时间API((三)JSR-310:格式化和解析)
java8 新日期时间API((四)JSR-310:常用计算工具)
java8 新日期时间API((五)JSR-310:实战+源码分析)
hutool日期时间系列文章
2DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换
9LocalDateTimeUtil(JDK8+中的{@link LocalDateTime} 工具类封装)
10TemporalAccessorUtil{@link TemporalAccessor} 工具类封装
用途:格式化时间
使用场景
把日期按照不同的需求格式化成对应的日期字符串
项目引用
此博文的依据:hutool-5.6.5版本源码
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.6.5</version>
</dependency>方法摘要
方法 | 描述 |
|---|---|
cn.hutool.core.date.DateUtil.formatLocalDateTime(java.time.LocalDateTime) | 格式化日期时间<br> 格式 yyyy-MM-dd HH:mm:ss |
cn.hutool.core.date.DateUtil.format(java.time.LocalDateTime, java.lang.String) | 根据特定格式格式化日期 |
cn.hutool.core.date.DateUtil.format(java.util.Date, java.lang.String) | 根据特定格式格式化日期 |
cn.hutool.core.date.DateUtil.format(java.util.Date, cn.hutool.core.date.format.DatePrinter) | 根据特定格式格式化日期 |
cn.hutool.core.date.DateUtil.format(java.util.Date, java.text.DateFormat) | 根据特定格式格式化日期 |
cn.hutool.core.date.DateUtil.format(java.util.Date, java.time.format.DateTimeFormatter) | 根据特定格式格式化日期 |
cn.hutool.core.date.DateUtil.formatDateTime(java.util.Date) | 格式化日期时间<br> 格式 yyyy-MM-dd HH:mm:ss |
cn.hutool.core.date.DateUtil.formatDate(java.util.Date) | 格式化日期部分(不包括时间)<br> 格式 yyyy-MM-dd |
cn.hutool.core.date.DateUtil.formatTime(java.util.Date) | 格式化时间<br> 格式 HH:mm:ss |
cn.hutool.core.date.DateUtil.formatHttpDate(java.util.Date) | 格式化为Http的标准日期格式<br> 标准日期格式遵循RFC 1123规范,格式类似于:Fri, 31 Dec 1999 23:59:59 GMT |
cn.hutool.core.date.DateUtil.formatChineseDate(java.util.Date, boolean, boolean) | 格式化为中文日期格式,如果isUppercase为false,则返回类似:2018年10月24日,否则返回二〇一八年十月二十四日 |
方法明细
方法名称:cn.hutool.core.date.DateUtil.formatLocalDateTime(java.time.LocalDateTime)
方法描述
格式化日期时间<br> 格式 yyyy-MM-dd HH:mm:ss
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
LocalDateTime localDateTime | localDateTime 被格式化的日期 |
返回值:
格式化后的字符串
参考案例:
String strDate = "2019-12-01 17:02:30";
LocalDateTime ldt = DateUtil.parseLocalDateTime(strDate);
String strDate1 = DateUtil.formatLocalDateTime(ldt);
Assert.assertEquals(strDate, strDate1);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.format(java.time.LocalDateTime, java.lang.String)
方法描述
根据特定格式格式化日期
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
LocalDateTime localDateTime | localDateTime 被格式化的日期 |
String format | format 日期格式,常用格式见: {@link DatePattern} |
返回值:
格式化后的字符串
参考案例:
String strDate2 = "2019-12-01 17:02:30.111";
ldt = DateUtil.parseLocalDateTime(strDate2, DatePattern.NORM_DATETIME_MS_PATTERN);
strDate1 = DateUtil.format(ldt, DatePattern.NORM_DATETIME_PATTERN);
Assert.assertEquals(strDate, strDate1);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.format(java.util.Date, java.lang.String)
方法描述
根据特定格式格式化日期
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
String format | format 日期格式,常用格式见: {@link DatePattern} |
返回值:
格式化后的字符串
参考案例:
String strDate = "2021-05-16";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date localDate = sdf.parse(strDate);
Assert.assertEquals(strDate, DateUtil.format(localDate, DatePattern.NORM_DATE_PATTERN));源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.format(java.util.Date, cn.hutool.core.date.format.DatePrinter)
方法描述
根据特定格式格式化日期
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
DatePrinter format | format {@link DatePrinter} 或 {@link FastDateFormat} |
返回值:
格式化后的字符串
参考案例:
//根据特定格式格式化日期
String str = "2021-05-16";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
Date date = DateUtil.parse(str);
String dateStr = DateUtil.format(date,sdf);
System.out.println(dateStr);
Assert.assertEquals(str, dateStr);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.format(java.util.Date, java.text.DateFormat)
方法描述
根据特定格式格式化日期
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
DateFormat format | format {@link SimpleDateFormat} |
返回值:
格式化后的字符串
参考案例:
待补充源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.format(java.util.Date, java.time.format.DateTimeFormatter)
方法描述
根据特定格式格式化日期
支持版本及以上
5.0.0
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
DateTimeFormatter format | format {@link SimpleDateFormat} |
返回值:
格式化后的字符串
参考案例:
//根据特定格式格式化日期
String str = "2021-05-16";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.US);
Date date = DateUtil.parse(str);
String dateStr = DateUtil.format(date,dtf);
System.out.println(dateStr);
Assert.assertEquals(str, dateStr);
// 此方法有问题,官方已处理 处理版本是5.7.5 修复
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.formatDateTime(java.util.Date)
方法描述
格式化日期时间<br> 格式 yyyy-MM-dd HH:mm:ss
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
返回值:
格式化后的日期
参考案例:
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);
String format = DateUtil.format(date, "yyyy/MM/dd");
Assert.assertEquals("2017/03/01", format);
// 常用格式的格式化
String formatDate = DateUtil.formatDate(date);
Assert.assertEquals("2017-03-01", formatDate);
String formatDateTime = DateUtil.formatDateTime(date);
Assert.assertEquals("2017-03-01 00:00:00", formatDateTime);
String formatTime = DateUtil.formatTime(date);
Assert.assertEquals("00:00:00", formatTime);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.formatDate(java.util.Date)
方法描述
格式化日期部分(不包括时间)<br> 格式 yyyy-MM-dd
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
返回值:
格式化后的字符串
参考案例:
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);
String format = DateUtil.format(date, "yyyy/MM/dd");
Assert.assertEquals("2017/03/01", format);
// 常用格式的格式化
String formatDate = DateUtil.formatDate(date);
Assert.assertEquals("2017-03-01", formatDate);
String formatDateTime = DateUtil.formatDateTime(date);
Assert.assertEquals("2017-03-01 00:00:00", formatDateTime);
String formatTime = DateUtil.formatTime(date);
Assert.assertEquals("00:00:00", formatTime);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.formatTime(java.util.Date)
方法描述
格式化时间<br> 格式 HH:mm:ss
支持版本及以上
3.0.1
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
返回值:
格式化后的字符串
参考案例:
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);
String format = DateUtil.format(date, "yyyy/MM/dd");
Assert.assertEquals("2017/03/01", format);
// 常用格式的格式化
String formatDate = DateUtil.formatDate(date);
Assert.assertEquals("2017-03-01", formatDate);
String formatDateTime = DateUtil.formatDateTime(date);
Assert.assertEquals("2017-03-01 00:00:00", formatDateTime);
String formatTime = DateUtil.formatTime(date);
Assert.assertEquals("00:00:00", formatTime);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.formatHttpDate(java.util.Date)
方法描述
格式化为Http的标准日期格式<br> 标准日期格式遵循RFC 1123规范,格式类似于:Fri, 31 Dec 1999 23:59:59 GMT
支持版本及以上
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
返回值:
HTTP标准形式日期字符串
参考案例:
String formatHttpDate = DateUtil.formatHttpDate(DateUtil.parse("2019-01-02 22:32:01"));
Assert.assertEquals("Wed, 02 Jan 2019 14:32:01 GMT", formatHttpDate);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
方法明细
方法名称:cn.hutool.core.date.DateUtil.formatChineseDate(java.util.Date, boolean, boolean)
方法描述
格式化为中文日期格式,如果isUppercase为false,则返回类似:2018年10月24日,否则返回二〇一八年十月二十四日
支持版本及以上
5.3.9
参数描述:
参数名 | 描述 |
|---|---|
Date date | date 被格式化的日期 |
boolean isUppercase | isUppercase 是否采用大写形式 |
boolean withTime | withTime 是否包含时间部分 |
返回值:
中文日期字符串
参考案例:
String formatChineseDate = DateUtil.formatChineseDate(DateUtil.parse("2018-02-24"), true, false);
Assert.assertEquals("二〇一八年二月二十四日", formatChineseDate);源码解析:
4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131752.html原文链接:https://javaforall.cn
边栏推荐
- 数据中台咋就从“小甜甜”变成了“牛夫人”?
- MapReduce编程基础
- Flinkv1.13 implementation of financial anti fraud cases
- Tearful eyes, it's not easy to change jobs. Three rounds of interviews, four hours of soul torture
- Weidongshan board compilation kernel problem solving
- Tree structure --- binary tree 1
- 【leetcode】287. Find duplicates
- js作用域链与闭包
- 睡了二哥。。。
- js原型继承仅可继承实例而非构造器
猜你喜欢
随机推荐
IPv6 learning notes
谁拥有穿越周期的眼光?
SQL learning notes (01) - basic knowledge of database
js 使用toString 区分Object、Array
JS use toString to distinguish between object and array
Niuke monthly race 22 tree sub chain
es6-顶层对象与window的脱钩
Using closures to implement private variables
Postgraduate entrance examination vocabulary 2023 sharing (1)
ES6 decoupling top-level objects from windows
Error org apache. catalina. core. StandardContext. FilterStart start filter exception
Click the screen with your finger to simulate F11 and enter the full screen
年薪100万,在北上广深买的起房子吗?
2.2 【pytorch】torchvision. transforms
Differences between JS valueof and toString
Ubuntu系统安装与配置MySQL
NoSQL数据库的安装和使用
[unity rendering] customized screen post-processing
Dspic30f6014a LCD block display
【pytorch】nn. AdaptiveMaxPool2d
![[pytorch] softmax function](/img/97/b8ae22e8496a77e665d716cb0e9ee3.png)








