时间转换工具

/**
 * 毫秒转换为时间字符串
 * @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;
    }

 

posted @ 2022-10-11 17:36  liftsail  阅读(61)  评论(0编辑  收藏  举报