设备告警
This commit is contained in:
@ -0,0 +1,108 @@
|
||||
package com.fuyuanshen.common.core.utils.date;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 持续时间工具类
|
||||
* 提供计算两个日期之间差值的方法,并以时分秒格式返回
|
||||
*
|
||||
* @author fys
|
||||
*/
|
||||
public class DurationUtils {
|
||||
|
||||
/**
|
||||
* 计算两个日期之间的差值,返回时分秒格式的字符串
|
||||
* 格式为 "X小时 Y分钟 Z秒"
|
||||
*
|
||||
* @param startDate 开始日期
|
||||
* @param endDate 结束日期
|
||||
* @return 时分秒格式的时间差字符串
|
||||
*/
|
||||
public static String getDurationBetween(Date startDate, Date endDate) {
|
||||
if (startDate == null || endDate == null) {
|
||||
return "0小时 0分钟 0秒";
|
||||
}
|
||||
|
||||
long diffInMillis = Math.abs(endDate.getTime() - startDate.getTime());
|
||||
long hours = TimeUnit.MILLISECONDS.toHours(diffInMillis);
|
||||
long minutes = TimeUnit.MILLISECONDS.toMinutes(diffInMillis) % 60;
|
||||
long seconds = TimeUnit.MILLISECONDS.toSeconds(diffInMillis) % 60;
|
||||
|
||||
return String.format("%d小时 %d分钟 %d秒", hours, minutes, seconds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算两个日期之间的差值,返回时分秒格式的字符串
|
||||
* 仅显示非零单位
|
||||
*
|
||||
* @param startDate 开始日期
|
||||
* @param endDate 结束日期
|
||||
* @return 时分秒格式的时间差字符串,仅显示非零单位
|
||||
*/
|
||||
public static String getDurationBetweenPretty(Date startDate, Date endDate) {
|
||||
if (startDate == null || endDate == null) {
|
||||
return "0秒";
|
||||
}
|
||||
|
||||
long diffInMillis = Math.abs(endDate.getTime() - startDate.getTime());
|
||||
long hours = TimeUnit.MILLISECONDS.toHours(diffInMillis);
|
||||
long minutes = TimeUnit.MILLISECONDS.toMinutes(diffInMillis) % 60;
|
||||
long seconds = TimeUnit.MILLISECONDS.toSeconds(diffInMillis) % 60;
|
||||
|
||||
StringBuilder result = new StringBuilder();
|
||||
if (hours > 0) {
|
||||
result.append(hours).append("小时 ");
|
||||
}
|
||||
if (minutes > 0) {
|
||||
result.append(minutes).append("分钟 ");
|
||||
}
|
||||
if (seconds > 0 || result.length() == 0) {
|
||||
result.append(seconds).append("秒");
|
||||
}
|
||||
|
||||
return result.toString().trim();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算指定毫秒数的持续时间,返回时分秒格式的字符串
|
||||
*
|
||||
* @param millis 毫秒数
|
||||
* @return 时分秒格式的持续时间字符串
|
||||
*/
|
||||
public static String getDurationFromMillis(long millis) {
|
||||
long absMillis = Math.abs(millis);
|
||||
long hours = TimeUnit.MILLISECONDS.toHours(absMillis);
|
||||
long minutes = TimeUnit.MILLISECONDS.toMinutes(absMillis) % 60;
|
||||
long seconds = TimeUnit.MILLISECONDS.toSeconds(absMillis) % 60;
|
||||
|
||||
return String.format("%d小时 %d分钟 %d秒", hours, minutes, seconds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算指定毫秒数的持续时间,返回时分秒格式的字符串
|
||||
* 仅显示非零单位
|
||||
*
|
||||
* @param millis 毫秒数
|
||||
* @return 时分秒格式的持续时间字符串,仅显示非零单位
|
||||
*/
|
||||
public static String getDurationFromMillisPretty(long millis) {
|
||||
long absMillis = Math.abs(millis);
|
||||
long hours = TimeUnit.MILLISECONDS.toHours(absMillis);
|
||||
long minutes = TimeUnit.MILLISECONDS.toMinutes(absMillis) % 60;
|
||||
long seconds = TimeUnit.MILLISECONDS.toSeconds(absMillis) % 60;
|
||||
|
||||
StringBuilder result = new StringBuilder();
|
||||
if (hours > 0) {
|
||||
result.append(hours).append("小时 ");
|
||||
}
|
||||
if (minutes > 0) {
|
||||
result.append(minutes).append("分钟 ");
|
||||
}
|
||||
if (seconds > 0 || result.length() == 0) {
|
||||
result.append(seconds).append("秒");
|
||||
}
|
||||
|
||||
return result.toString().trim();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user