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;
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;
}

View File

@@ -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 {

View File

@@ -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);
}

View File

@@ -234,7 +234,7 @@ public class Log extends DataEntity<Log> {
if (executeTime == null) {
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("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"));