From bb58e108a9da48d84b84d30b73c01106dd642550 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 02 八月 2023 19:58:49 +0800 Subject: [PATCH] bug --- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 50 insertions(+), 8 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 571b7e2..dee9fc5 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; /** * 时间工具类 @@ -32,6 +30,14 @@ "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", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + 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); + } /** * 获取当前Date型日期 @@ -70,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) @@ -139,7 +145,7 @@ /** * 计算时间差 * - * @param endTime 最后时间 + * @param endDate 最后时间 * @param startTime 开始时间 * @return 时间差(天/小时/分钟) */ @@ -162,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 */ @@ -180,4 +200,26 @@ 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(); + } } -- Gitblit v1.7.1