From b31364a794fe5b976d337becc2460c8da996be50 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Fri, 22 Apr 2022 14:50:38 +0800 Subject: [PATCH] =?UTF-8?q?TimeUtils=20=E6=96=B0=E5=A2=9E=E5=A4=9A?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E5=8F=82=E6=95=B0=EF=BC=8CformatDateAgo=20?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E4=B8=BA=20formatTime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jeesite/common/lang/ObjectUtils.java | 8 +-- .../com/jeesite/common/lang/TimeUtils.java | 50 +++++++++++++++---- .../cmsfront/web/FrontSearchController.java | 2 +- .../com/jeesite/modules/sys/entity/Log.java | 2 +- .../modules/sys/web/OnlineController.java | 2 +- 5 files changed, 46 insertions(+), 18 deletions(-) diff --git a/common/src/main/java/com/jeesite/common/lang/ObjectUtils.java b/common/src/main/java/com/jeesite/common/lang/ObjectUtils.java index 75e824a0..8e43886b 100644 --- a/common/src/main/java/com/jeesite/common/lang/ObjectUtils.java +++ b/common/src/main/java/com/jeesite/common/lang/ObjectUtils.java @@ -214,7 +214,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils { } long totalTime = System.currentTimeMillis() - beginTime; if (totalTime > 30000){ - logger.warn(object.getClass() + " serialize time: " + TimeUtils.formatDateAgo(totalTime)); + logger.warn(object.getClass() + " serialize time: " + TimeUtils.formatTime(totalTime)); } return bytes; } @@ -240,7 +240,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils { } long totalTime = System.currentTimeMillis() - beginTime; if (totalTime > 30000 && object != null){ - logger.warn(object.getClass() + " unserialize time: " + TimeUtils.formatDateAgo(totalTime)); + logger.warn(object.getClass() + " unserialize time: " + TimeUtils.formatTime(totalTime)); } return object; } @@ -265,7 +265,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils { byte[] bytes = fstConfiguration.get().asByteArray(object); long totalTime = System.currentTimeMillis() - beginTime; if (totalTime > 30000){ - logger.warn(object.getClass() + " fst serialize time: " + TimeUtils.formatDateAgo(totalTime)); + logger.warn(object.getClass() + " fst serialize time: " + TimeUtils.formatTime(totalTime)); } return bytes; } @@ -283,7 +283,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils { Object object = fstConfiguration.get().asObject(bytes); long totalTime = System.currentTimeMillis() - beginTime; if (totalTime > 30000 && object != null){ - logger.warn(object.getClass() + " fst unserialize time: " + TimeUtils.formatDateAgo(totalTime)); + logger.warn(object.getClass() + " fst unserialize time: " + TimeUtils.formatTime(totalTime)); } return object; } diff --git a/common/src/main/java/com/jeesite/common/lang/TimeUtils.java b/common/src/main/java/com/jeesite/common/lang/TimeUtils.java index a8a6497c..f801fd31 100644 --- a/common/src/main/java/com/jeesite/common/lang/TimeUtils.java +++ b/common/src/main/java/com/jeesite/common/lang/TimeUtils.java @@ -13,10 +13,31 @@ import java.util.Date; */ public class TimeUtils { + public static final String[] CN = new String[] {"毫秒", "秒", "分", "时", "天"}; + public static final String[] EN = new String[] {" millisecond ", " second", " minute", " hour", " day"}; + + public static final String[] AGO_CN = new String[] {"刚刚", "秒前", "分钟前", "小时前", "天前"}; + public static final String[] AGO_EN = new String[] {"just now", " seconds ago", " minutes ago", " hours ago", " days ago"}; + + /** + * 将毫秒数转换为:xx天,xx时,xx分,xx秒(v5.1 替换为 formatTime) + */ + @Deprecated + public static String formatDateAgo(long millisecond) { + return formatTime(millisecond, CN); + } + /** * 将毫秒数转换为:xx天,xx时,xx分,xx秒 */ - public static String formatDateAgo(long millisecond) { + public static String formatTime(long millisecond) { + return formatTime(millisecond, CN); + } + + /** + * 将毫秒数转换为:xx天,xx时,xx分,xx秒 + */ + public static String formatTime(long millisecond, String[] lang) { long ms = millisecond; int ss = 1000; int mi = ss * 60; @@ -28,19 +49,19 @@ public class TimeUtils { long second = (ms - day * dd - hour * hh - minute * mi) / ss; StringBuilder sb = new StringBuilder(); if (ms >= 0 && ms < 1000) { - sb.append(ms).append("毫秒"); + sb.append(ms).append(lang[0]); } else { if (day > 0) { - sb.append(day).append("天"); + sb.append(day).append(lang[4]); } if (hour > 0) { - sb.append(hour).append("时"); + sb.append(hour).append(lang[3]); } if (minute > 0) { - sb.append(minute).append("分"); + sb.append(minute).append(lang[2]); } if (second > 0) { - sb.append(second).append("秒"); + sb.append(second).append(lang[1]); } } return sb.toString(); @@ -57,32 +78,39 @@ public class TimeUtils { * 将过去的时间转为为,刚刚,xx秒,xx分钟,xx小时前、xx天前,大于3天的显示日期 */ public static String formatTimeAgo(Date dateTime) { + return formatTimeAgo(dateTime, AGO_CN); + } + + /** + * 将过去的时间转为为,刚刚,xx秒,xx分钟,xx小时前、xx天前,大于3天的显示日期 + */ + public static String formatTimeAgo(Date dateTime, String[] lang) { String interval = null; // 得出的时间间隔是毫秒 long time = System.currentTimeMillis() - dateTime.getTime(); // 如果时间间隔小于10秒则显示“刚刚”time/10得出的时间间隔的单位是秒 if (time / 1000 < 10 && time / 1000 >= 0) { - interval = "刚刚"; + interval = lang[0]; } // 如果时间间隔大于24小时则显示多少天前 else if (time / 3600000 < 24 * 4 && time / 3600000 >= 24) { int d = (int) (time / (3600000 * 24));// 得出的时间间隔的单位是天 - interval = d + "天前"; + interval = d + lang[4]; } // 如果时间间隔小于24小时则显示多少小时前 else if (time / 3600000 < 24 && time / 3600000 >= 1) { int h = (int) (time / 3600000);// 得出的时间间隔的单位是小时 - interval = h + "小时前"; + interval = h + lang[3]; } // 如果时间间隔小于60分钟则显示多少分钟前 else if (time / 60000 < 60 && time / 60000 >= 1) { int m = (int) ((time % 3600000) / 60000);// 得出的时间间隔的单位是分钟 - interval = m + "分钟前"; + interval = m + lang[2]; } // 如果时间间隔小于60秒则显示多少秒前 else if (time / 1000 < 60 && time / 1000 >= 10) { int se = (int) ((time % 60000) / 1000); - interval = se + "秒前"; + interval = se + lang[1]; } // 大于3天的,则显示正常的时间,但是不显示秒 else { diff --git a/modules/cms/src/main/java/com/jeesite/modules/cmsfront/web/FrontSearchController.java b/modules/cms/src/main/java/com/jeesite/modules/cmsfront/web/FrontSearchController.java index bea36413..b625c84a 100644 --- a/modules/cms/src/main/java/com/jeesite/modules/cmsfront/web/FrontSearchController.java +++ b/modules/cms/src/main/java/com/jeesite/modules/cmsfront/web/FrontSearchController.java @@ -62,7 +62,7 @@ public class FrontSearchController extends BaseController{ parmas.put("siteCode", siteCode); } page = articleService.searchPage(page, q, qand, qnot, bd, ed, parmas); - page.setPageInfo("匹配结果,共耗时 " + TimeUtils.formatDateAgo(System.currentTimeMillis() - start) + "。"); + page.setPageInfo("匹配结果,共耗时 " + TimeUtils.formatTime(System.currentTimeMillis() - start) + "。"); model.addAttribute("page", page); } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java b/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java index c5d4ed76..8d314984 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java @@ -234,7 +234,7 @@ public class Log extends DataEntity { if (executeTime == null) { executeTime = 0L; } - return TimeUtils.formatDateAgo(executeTime); + return TimeUtils.formatTime(executeTime); } /** diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java index 41a6e182..69b29e1a 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java @@ -105,7 +105,7 @@ public class OnlineController extends BaseController{ } map.put("startTimestamp", DateUtils.formatDateTime(session.getStartTimestamp())); map.put("lastAccessTime", DateUtils.formatDateTime(session.getLastAccessTime())); - map.put("timeout", TimeUtils.formatDateAgo(session.getTimeout()-(currentTime-session.getLastAccessTime().getTime()))); + map.put("timeout", TimeUtils.formatTime(session.getTimeout()-(currentTime-session.getLastAccessTime().getTime()))); map.put("userCode", session.getAttribute("userCode")); map.put("userName", session.getAttribute("userName")); map.put("userType", session.getAttribute("userType"));