Java 中DateUtils日期工具类的实例详解
介绍
DateUtils 是 Apache Commons Lang 库中的一个日期工具类,可以实现日期的快速转换、格式化以及时间计算。在处理日期时间相关计算时,使用该工具类可以减少代码的编写量,并提高开发效率。
使用步骤
- 将 Apache Commons Lang库引入项目依赖:
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
- 导入工具类
import org.apache.commons.lang.time.DateUtils;
- 使用该工具类进行日期时间处理
常用方法示例
下面列举了该工具类中常用的方法,包括日期格式化、日期计算、日期比较和时间戳转换。
- 日期格式化
```java
// 将日期格式化为字符串,使用给定时间模式
String dateStr = DateUtils.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss");
// 将字符串解析为日期
Date date = DateUtils.parseDate("2021-05-27 16:04:30", new String[] { "yyyy-MM-dd HH:mm:ss" });
```
示例1:
java
Date date = new Date();
String dateStr = DateUtils.dateToString(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(dateStr);
输出:
2021-05-27 16:04:30
示例2:
java
String dateStr = "2021-05-27 16:04:30";
Date date = DateUtils.parseDate(dateStr, new String[] { "yyyy-MM-dd HH:mm:ss" });
System.out.println(date);
输出:
Thu May 27 16:04:30 CST 2021
- 日期计算
```java
// 将指定时刻加上指定天数
Date newDate = DateUtils.addDays(new Date(), -1);
// 将指定时刻加上指定小时数
Date newTime = DateUtils.addHours(new Date(), 1);
```
示例1:
java
Date date = new Date();
Date newDate = DateUtils.addDays(date, -1);
String dateStr = DateUtils.dateToString(newDate, "yyyy-MM-dd HH:mm:ss");
System.out.println(dateStr);
输出:
2021-05-26 16:04:30
示例2:
java
Date date = new Date();
Date newTime = DateUtils.addHours(date, 1);
String dateStr = DateUtils.dateToString(newTime, "yyyy-MM-dd HH:mm:ss");
System.out.println(dateStr);
输出:
2021-05-27 17:04:30
- 日期比较
```java
// 判断两个日期是否是同一天
boolean isSameDay = DateUtils.isSameDay(new Date(), new Date());
// 判断两个日期是否在同一周
boolean isSameWeek = DateUtils.isSameWeek(new Date(), new Date());
// 判断两个日期是否在同一月
boolean isSameMonth = DateUtils.isSameMonth(new Date(), new Date());
```
示例1:
java
Date date1 = new Date();
Date date2 = new Date(date1.getTime() + 86400000);
boolean isSameDay = DateUtils.isSameDay(date1, date2);
System.out.println(isSameDay);
输出:
false
示例2:
java
Date date1 = new Date();
Date date2 = new Date(date1.getTime() + 86400000 * 7);
boolean isSameWeek = DateUtils.isSameWeek(date1, date2);
System.out.println(isSameWeek);
输出:
false
示例3:
```java
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.MONTH, 4);
cal1.set(Calendar.DAY_OF_MONTH, 1);
Calendar cal2 = Calendar.getInstance();
cal2.set(Calendar.MONTH, 4);
cal2.set(Calendar.DAY_OF_MONTH, 31);
boolean isSameMonth = DateUtils.isSameMonth(cal1.getTime(), cal2.getTime());
System.out.println(isSameMonth);
```
输出:
true
- 时间戳转换
```java
// 将时间戳转换为日期
Date date = DateUtils.toDate(1622121900000L);
// 将日期转换为时间戳
long timestamp = DateUtils.getFragmentInSeconds(new Date(), Calendar.DATE) * 1000;
```
示例1:
java
long timestamp = 1622121900000L;
Date date = DateUtils.toDate(timestamp);
String dateStr = DateUtils.dateToString(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(dateStr);
输出:
2021-05-27 16:05:00
示例2:
java
Date date = new Date();
long timestamp = date.getTime();
System.out.println(timestamp);
输出:
1622121900090
结论
使用 DateUtils 可以有效地处理日期时间计算等需求,降低了编写代码的复杂度和代码量,可以提高代码的可读性和可维护性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 中DateUtils日期工具类的实例详解 - Python技术站