From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 01 四月 2025 16:03:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java | 67 +++++++++++++++++++++++++++++---- 1 files changed, 58 insertions(+), 9 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java index b4eacc3..71ea2c8 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java @@ -1,15 +1,13 @@ package com.ruoyi.common.core.utils; +import org.apache.commons.lang3.time.DateFormatUtils; + import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; +import java.time.*; +import java.util.Calendar; import java.util.Date; -import org.apache.commons.lang3.time.DateFormatUtils; /** * 时间工具类 @@ -33,8 +31,12 @@ "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; - public static void main(String[] args) { - System.out.println(getNowDate()); + public static void main(String[] args) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date start = sdf.parse("2021-10-01 10:00:00"); + Date end = sdf.parse("2021-10-01 12:30:00"); + String time = formatDuration(start,end); + System.out.println(time); } /** @@ -74,7 +76,7 @@ public static final String dateTime(final Date date) { - return parseDateToStr(YYYY_MM_DD, date); + return parseDateToStr(YYYY_MM_DD_HH_MM_SS, date); } public static final String parseDateToStr(final String format, final Date date) @@ -166,6 +168,20 @@ return day + "天" + hour + "小时" + min + "分钟"; } + public static long diffTime(Date startTime, Date endTime){ + // 获取Calendar实例 + Calendar cal1 = Calendar.getInstance(); + Calendar cal2 = Calendar.getInstance(); + // 设置Calendar对象的时间 + cal1.setTime(startTime); + cal2.setTime(endTime); + // 获取时间差 + long milliseconds1 = cal1.getTimeInMillis(); + long milliseconds2 = cal2.getTimeInMillis(); + long diff = milliseconds2 - milliseconds1; + return diff; + } + /** * 增加 LocalDateTime ==> Date */ @@ -184,4 +200,37 @@ ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + public static String formatDuration(Date start, Date end) { + long duration = end.getTime() - start.getTime(); + long days = duration / (24 * 60 * 60 * 1000); + long hours = (duration % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000); + long minutes = (duration % (60 * 60 * 1000)) / (60 * 1000); + long seconds = (duration % (60 * 1000)) / 1000; + StringBuilder sb = new StringBuilder(); + if (days > 0) { + sb.append(days).append("天"); + } + if (hours > 0) { + sb.append(hours).append("小时"); + } + if (minutes > 0) { + sb.append(minutes).append("分"); + } + if (seconds > 0) { + sb.append(seconds).append("秒"); + } + return sb.toString(); + } + + public static Date getTodayStartTime() { + // 获取今天的日期 + LocalDate today = LocalDate.now(); + + // 获取当天的开始时间(00:00:00) + LocalDateTime startOfDay = today.atStartOfDay(); + + // 转换为 Date 类型 + return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant()); + } } -- Gitblit v1.7.1