当前位置:网站首页>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
边栏推荐
- SQL learning notes (04) - data update and query operations
- Tree structure -- binary tree 2 non recursive traversal
- Solution of EPS image blur by latex insertion
- How to realize the usage of connecting multiple databases in idel
- SDN_ Simple summary
- 项目采购管理
- Youqitong PE toolbox [vip] v3.7.2022.0106 official January 22 Edition
- A 419 error occurred in the laravel postman submission form. July 6th, 2020 diary.
- MT7628K eCos开发入门
- ES6 const essence and completely immutable implementation (object.free)
猜你喜欢

全球基金和资管的股票建仓率达到15年内新低

Computer USB, HDMI, DP various interfaces and speeds

CSDN一站式云服务开放内测,诚邀新老用户来抢鲜

OSPF - virtual link details (including configuration commands)

Flinkv1.13 implementation of financial anti fraud cases

云原生到底是什么?它会是未来发展的趋势吗?

Upload labs for file upload - white box audit

LVGL V8.2字符串显示在Keil MDK上需要注意的事项(以小熊派为例)

队列的实现和应用

2.4 activation function
随机推荐
UE small knowledge point controller possess pawn process
tensorrt yolov5_ trt. Py comments
js原型继承仅可继承实例而非构造器
Network counting 01 physical layer
微信表情符号写入判决书,你发的OK、炸弹都可能成为“呈堂证供”
PHP code audit and File Inclusion Vulnerability
云原生到底是什么?它会是未来发展的趋势吗?
How to realize the usage of connecting multiple databases in idel
dotnet 控制台 使用 Microsoft.Maui.Graphics 配合 Skia 进行绘图入门
手指点击屏幕就模拟进入F11进入全屏
Rich text interpolation
Get the list of a column in phpexcel get the letters of a column
Mikrotik Routeros Internet access settings
LeetCode 344. Reverse string
嵌入式开发用到的一些工具
SQL learning notes (01) - basic knowledge of database
node. How to implement the SQL statement after JS connects to the database?
PHP merges multiple arrays. The same element takes the intersection of different elements to form an array
短路运算符惰性求值
Construction of esp8266 FreeRTOS development environment