TimeUtils 新增多语言参数,formatDateAgo 重命名为 formatTime

This commit is contained in:
thinkgem
2022-04-22 14:50:38 +08:00
parent a0d6ef9097
commit b31364a794
5 changed files with 46 additions and 18 deletions

View File

@@ -214,7 +214,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
} }
long totalTime = System.currentTimeMillis() - beginTime; long totalTime = System.currentTimeMillis() - beginTime;
if (totalTime > 30000){ if (totalTime > 30000){
logger.warn(object.getClass() + " serialize time: " + TimeUtils.formatDateAgo(totalTime)); logger.warn(object.getClass() + " serialize time: " + TimeUtils.formatTime(totalTime));
} }
return bytes; return bytes;
} }
@@ -240,7 +240,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
} }
long totalTime = System.currentTimeMillis() - beginTime; long totalTime = System.currentTimeMillis() - beginTime;
if (totalTime > 30000 && object != null){ 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; return object;
} }
@@ -265,7 +265,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
byte[] bytes = fstConfiguration.get().asByteArray(object); byte[] bytes = fstConfiguration.get().asByteArray(object);
long totalTime = System.currentTimeMillis() - beginTime; long totalTime = System.currentTimeMillis() - beginTime;
if (totalTime > 30000){ 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; return bytes;
} }
@@ -283,7 +283,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
Object object = fstConfiguration.get().asObject(bytes); Object object = fstConfiguration.get().asObject(bytes);
long totalTime = System.currentTimeMillis() - beginTime; long totalTime = System.currentTimeMillis() - beginTime;
if (totalTime > 30000 && object != null){ 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; return object;
} }

View File

@@ -13,10 +13,31 @@ import java.util.Date;
*/ */
public class TimeUtils { 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秒 * 将毫秒数转换为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; long ms = millisecond;
int ss = 1000; int ss = 1000;
int mi = ss * 60; int mi = ss * 60;
@@ -28,19 +49,19 @@ public class TimeUtils {
long second = (ms - day * dd - hour * hh - minute * mi) / ss; long second = (ms - day * dd - hour * hh - minute * mi) / ss;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (ms >= 0 && ms < 1000) { if (ms >= 0 && ms < 1000) {
sb.append(ms).append("毫秒"); sb.append(ms).append(lang[0]);
} else { } else {
if (day > 0) { if (day > 0) {
sb.append(day).append(""); sb.append(day).append(lang[4]);
} }
if (hour > 0) { if (hour > 0) {
sb.append(hour).append(""); sb.append(hour).append(lang[3]);
} }
if (minute > 0) { if (minute > 0) {
sb.append(minute).append(""); sb.append(minute).append(lang[2]);
} }
if (second > 0) { if (second > 0) {
sb.append(second).append(""); sb.append(second).append(lang[1]);
} }
} }
return sb.toString(); return sb.toString();
@@ -57,32 +78,39 @@ public class TimeUtils {
* 将过去的时间转为为刚刚xx秒xx分钟xx小时前、xx天前大于3天的显示日期 * 将过去的时间转为为刚刚xx秒xx分钟xx小时前、xx天前大于3天的显示日期
*/ */
public static String formatTimeAgo(Date dateTime) { 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; String interval = null;
// 得出的时间间隔是毫秒 // 得出的时间间隔是毫秒
long time = System.currentTimeMillis() - dateTime.getTime(); long time = System.currentTimeMillis() - dateTime.getTime();
// 如果时间间隔小于10秒则显示“刚刚”time/10得出的时间间隔的单位是秒 // 如果时间间隔小于10秒则显示“刚刚”time/10得出的时间间隔的单位是秒
if (time / 1000 < 10 && time / 1000 >= 0) { if (time / 1000 < 10 && time / 1000 >= 0) {
interval = "刚刚"; interval = lang[0];
} }
// 如果时间间隔大于24小时则显示多少天前 // 如果时间间隔大于24小时则显示多少天前
else if (time / 3600000 < 24 * 4 && time / 3600000 >= 24) { else if (time / 3600000 < 24 * 4 && time / 3600000 >= 24) {
int d = (int) (time / (3600000 * 24));// 得出的时间间隔的单位是天 int d = (int) (time / (3600000 * 24));// 得出的时间间隔的单位是天
interval = d + "天前"; interval = d + lang[4];
} }
// 如果时间间隔小于24小时则显示多少小时前 // 如果时间间隔小于24小时则显示多少小时前
else if (time / 3600000 < 24 && time / 3600000 >= 1) { else if (time / 3600000 < 24 && time / 3600000 >= 1) {
int h = (int) (time / 3600000);// 得出的时间间隔的单位是小时 int h = (int) (time / 3600000);// 得出的时间间隔的单位是小时
interval = h + "小时前"; interval = h + lang[3];
} }
// 如果时间间隔小于60分钟则显示多少分钟前 // 如果时间间隔小于60分钟则显示多少分钟前
else if (time / 60000 < 60 && time / 60000 >= 1) { else if (time / 60000 < 60 && time / 60000 >= 1) {
int m = (int) ((time % 3600000) / 60000);// 得出的时间间隔的单位是分钟 int m = (int) ((time % 3600000) / 60000);// 得出的时间间隔的单位是分钟
interval = m + "分钟前"; interval = m + lang[2];
} }
// 如果时间间隔小于60秒则显示多少秒前 // 如果时间间隔小于60秒则显示多少秒前
else if (time / 1000 < 60 && time / 1000 >= 10) { else if (time / 1000 < 60 && time / 1000 >= 10) {
int se = (int) ((time % 60000) / 1000); int se = (int) ((time % 60000) / 1000);
interval = se + "秒前"; interval = se + lang[1];
} }
// 大于3天的则显示正常的时间但是不显示秒 // 大于3天的则显示正常的时间但是不显示秒
else { else {

View File

@@ -62,7 +62,7 @@ public class FrontSearchController extends BaseController{
parmas.put("siteCode", siteCode); parmas.put("siteCode", siteCode);
} }
page = articleService.searchPage(page, q, qand, qnot, bd, ed, parmas); 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); model.addAttribute("page", page);
} }

View File

@@ -234,7 +234,7 @@ public class Log extends DataEntity<Log> {
if (executeTime == null) { if (executeTime == null) {
executeTime = 0L; executeTime = 0L;
} }
return TimeUtils.formatDateAgo(executeTime); return TimeUtils.formatTime(executeTime);
} }
/** /**

View File

@@ -105,7 +105,7 @@ public class OnlineController extends BaseController{
} }
map.put("startTimestamp", DateUtils.formatDateTime(session.getStartTimestamp())); map.put("startTimestamp", DateUtils.formatDateTime(session.getStartTimestamp()));
map.put("lastAccessTime", DateUtils.formatDateTime(session.getLastAccessTime())); 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("userCode", session.getAttribute("userCode"));
map.put("userName", session.getAttribute("userName")); map.put("userName", session.getAttribute("userName"));
map.put("userType", session.getAttribute("userType")); map.put("userType", session.getAttribute("userType"));