时间转换工具
/**
* 毫秒转换为时间字符串
* @param milliseconds
* @return
*/
public static String timeStampToDhms(long milliseconds) {
long day = TimeUnit.MILLISECONDS.toDays(milliseconds);
long hours = TimeUnit.MILLISECONDS.toHours(milliseconds) - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(milliseconds));
long minutes = TimeUnit.MILLISECONDS.toMinutes(milliseconds) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(milliseconds));
long seconds = TimeUnit.MILLISECONDS.toSeconds(milliseconds) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(milliseconds));
StringBuilder sb = new StringBuilder();
if (day != 0) {
sb.append(day + "天");
}
sb.append(hours + "小时");
sb.append(minutes + "分");
sb.append(seconds + "秒");
return sb.toString();
}
//获取本周七天
public static List<String> getWeekDay() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
calendar.add(Calendar.DAY_OF_WEEK, -1);
}
Date[] dates = new Date[7]; // new Date[7] 星期日
for (int i = 0; i < 7; i++) { // i < 7 星期日
dates[i] = calendar.getTime();
calendar.add(Calendar.DATE, 1);
}
List<String> dateStrList = new ArrayList<>();
for (Date date : dates) {
dateStrList.add(dateFormat.format(date));
}
return dateStrList;
}
//31分钟前
public String getTimeDIFF(Date time_ago) {
Date time_now = new Date();
long diff = 0;
String CountTime = "";
int year = 0, month = 0, day = 0;
long hours = 0, minutes = 0, s = 0;
diff = time_now.getTime() - time_ago.getTime();
Calendar currentTimes = dataToCalendar(time_now);//当前系统时间转Calendar类型
Calendar pastTimes = dataToCalendar(time_ago);//查询的数据时间转Calendar类型
year = currentTimes.get(Calendar.YEAR) - pastTimes.get(Calendar.YEAR);//获取年
month = currentTimes.get(Calendar.MONTH) - pastTimes.get(Calendar.MONTH);
day = currentTimes.get(Calendar.DAY_OF_MONTH) - pastTimes.get(Calendar.DAY_OF_MONTH);
if (month < 0) {
month = (month + 12) % 12;//获取月
year--;
}
if (day < 0) {
month -= 1;
currentTimes.add(Calendar.MONTH, -1); //减一个月
day = day + currentTimes.getActualMaximum(Calendar.DAY_OF_MONTH);//获取日
}
long days = diff / (1000 * 60 * 60 * 24);
hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); //获取时
minutes = (diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60); //获取分钟
s = (diff / 1000 - days * 24 * 60 * 60 - hours * 60 * 60 - minutes * 60);//获取秒
CountTime = "" + year + "年" + month + "月" + day + "天" + hours + "小时" + minutes + "分" + s + "秒";
//System.out.println(CountTime);
String dd = year != 0 ? year + "年前" :
month != 0 ? month + "月前" :
day != 0 ? day + "天前" :
hours != 0 ? hours + "小时前" :
minutes != 0 ? minutes + "分钟前" :
s + "秒前";
//System.out.println(dd);
return dd;
}
//Date类型转Calendar类型
public static Calendar dataToCalendar(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.setTime(date);
return calendar;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?