主题
DateUtils 日期时间处理
cn.com.digitalhainan.tools.DateUtils
获取当前日期时间
java
import cn.com.digitalhainan.tools.DateUtils;
// 获取当前日期(Date类型)
Date currentDate = DateUtils.currentDate();
// 获取当前日期字符串(yyyy-MM-dd)
String today = DateUtils.getCurrentDate(); // 例如:2024-01-15
// 获取当前日期时间字符串(yyyy-MM-dd HH:mm:ss)
String now = DateUtils.getCurrentDatetime(); // 例如:2024-01-15 09:30:00
// 获取带毫秒的日期时间
String nowWithMs = DateUtils.getCurrentDateWithMilliSecond(); // 例如:2024-01-15 09:30:00.123日期格式化
java
import cn.com.digitalhainan.tools.DateUtils;
import java.util.Date;
Date date = new Date();
// 格式化为 yyyy-MM-dd
String dateStr = DateUtils.formatDate(date); // 2024-01-15
// 格式化为 yyyy-MM-dd HH:mm:ss
String datetimeStr = DateUtils.formatDateTime(date); // 2024-01-15 09:30:00
// 使用指定格式
String customStr = DateUtils.formatDate(date, DateUtils.TimeFormat.SHORT_DATE_PATTERN_NONE); // 20240115日期解析
java
import cn.com.digitalhainan.tools.DateUtils;
import java.util.Date;
// 解析日期字符串(yyyy-MM-dd)
Date date = DateUtils.parseDate("2024-01-15");
// 解析日期时间字符串(yyyy-MM-dd HH:mm:ss)
Date datetime = DateUtils.parseDateTime("2024-01-15 09:30:00");
// 使用指定格式解析
Date customDate = DateUtils.parseDate("20240115", DateUtils.TimeFormat.SHORT_DATE_PATTERN_NONE);日期加减运算
java
import cn.com.digitalhainan.tools.DateUtils;
import java.util.Date;
Date date = DateUtils.parseDateTime("2024-01-15 09:30:00");
// 加减天数(保留时分秒)
Date nextDay = DateUtils.addDayWithTime(date, 1); // 2024-01-16 09:30:00
Date prevDay = DateUtils.addDayWithTime(date, -1); // 2024-01-14 09:30:00
// 加减天数(时分秒置为0)
Date nextDayNoTime = DateUtils.addDayNoTime(date, 1); // 2024-01-16 00:00:00
// 加减月份
Date nextMonth = DateUtils.addMonthWithTime(date, 1); // 2024-02-15 09:30:00
Date nextMonthNoTime = DateUtils.addMonthNoTime(date, 1); // 2024-02-15 00:00:00
// 加减年份
Date nextYear = DateUtils.addYearWithTime(date, 1); // 2025-01-15 09:30:00
// 加减小时/分钟/秒
Date add2Hours = DateUtils.addHours(date, 2); // 2024-01-15 11:30:00
Date add30Minutes = DateUtils.addMinutes(date, 30); // 2024-01-15 10:00:00
Date add60Seconds = DateUtils.addSeconds(date, 60); // 2024-01-15 09:31:00日期比较
java
import cn.com.digitalhainan.tools.DateUtils;
import java.util.Date;
Date date1 = DateUtils.parseDate("2024-01-15");
Date date2 = DateUtils.parseDate("2024-01-20");
// 比较日期(只比较年月日,忽略时分秒)
boolean before = DateUtils.beforeDate(date1, date2); // true
boolean beforeOrEqual = DateUtils.beforeOrEqualsDate(date1, date2); // true
boolean after = DateUtils.afterDate(date1, date2); // false
boolean afterOrEqual = DateUtils.afterOrEqualsDate(date1, date2); // false计算日期间隔
java
import cn.com.digitalhainan.tools.DateUtils;
import java.util.Date;
Date startDate = DateUtils.parseDate("2024-01-01");
Date endDate = DateUtils.parseDate("2024-01-15");
// 计算天数差
String days = DateUtils.daysBetween(startDate, endDate); // "14"
int dayCount = DateUtils.getDayLength(startDate, endDate); // 14友好时间显示
java
import cn.com.digitalhainan.tools.DateUtils;
import java.util.Date;
// 根据时间差返回友好描述
Date justNow = DateUtils.addSeconds(new Date(), -5);
String interval1 = DateUtils.getInterval(justNow); // "刚刚"
Date fiveMinutesAgo = DateUtils.addMinutes(new Date(), -5);
String interval2 = DateUtils.getInterval(fiveMinutesAgo); // "5分钟前"
Date twoHoursAgo = DateUtils.addHours(new Date(), -2);
String interval3 = DateUtils.getInterval(twoHoursAgo); // "2小时前"
Date yesterday = DateUtils.addDayWithTime(new Date(), -1);
String interval4 = DateUtils.getInterval(yesterday); // "1天前"
Date lastMonth = DateUtils.addMonthWithTime(new Date(), -1);
String interval5 = DateUtils.getInterval(lastMonth); // "2024-01-15"(超过30天显示日期)秒数转时间字符串
java
import cn.com.digitalhainan.tools.DateUtils;
// 将秒数转换为易读的时间格式
String time1 = DateUtils.secToTime(30); // "30秒"
String time2 = DateUtils.secToTime(90); // "1分30秒"
String time3 = DateUtils.secToTime(3661); // "1时1分1秒"
String time4 = DateUtils.secToTime(90000); // "大于1天"计算年龄
java
import cn.com.digitalhainan.tools.DateUtils;
// 根据身份证号计算年龄
int age1 = DateUtils.getAgeByIDNumber("460200199001011234"); // 34
// 根据日期字符串计算年龄
int age2 = DateUtils.getAgeByDateString("1990-01-01"); // 34
// 根据Date计算年龄
Date birthday = DateUtils.parseDate("1990-01-01");
int age3 = DateUtils.getAgeByDate(birthday); // 34获取月份第一天和最后一天
java
import cn.com.digitalhainan.tools.DateUtils;
import java.util.Date;
// 获取指定月份的第一天
Date firstDay = DateUtils.getFirstDay("2024-01"); // 2024-01-01 00:00:00
// 获取指定月份的最后一天
Date lastDay = DateUtils.getLastDay("2024-01"); // 2024-01-31 00:00:00
// 获取上个月
Date lastMonth = DateUtils.getLastMonth(); // 上个月1号时间格式枚举
| 枚举值 | 格式 |
|---|---|
SHORT_DATE_PATTERN_LINE | yyyy-MM-dd |
LONG_DATE_PATTERN_LINE | yyyy-MM-dd HH:mm:ss |
LONG_DATE_PATTERN_WITH_MILSEC_LINE | yyyy-MM-dd HH:mm:ss.SSS |
SHORT_DATE_PATTERN_NONE | yyyyMMdd |
SHORT_DATE_PATTERN_FULL_NONE | yyyyMMddHHmmss |
