1. 程式人生 > 其它 >時間工具類DateUtils

時間工具類DateUtils

技術標籤:一些不知名的工具類javadate

文章目錄

根據兩個時間獲取時間內的具體日期

public static List<String> getPerDay(String startTime, String endTime ) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date sTime = df.parse(startTime);
        Date eTime = df.parse(endTime);
        //定義一個接受時間的集合
        List<String> lDate = new ArrayList<>(16);
        lDate.add(startTime);
        Calendar calBegin = Calendar.getInstance();
        // 使用給定的 Date 設定此 Calendar 的時間
        calBegin.setTime(sTime);
        Calendar calEnd = Calendar.getInstance();
        // 使用給定的 Date 設定此 Calendar 的時間
        calEnd.setTime(eTime);
        // 測試此日期是否在指定日期之後
        while (eTime.after(calBegin.getTime()))  {
            // 根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量
            calBegin.add(Calendar.DAY_OF_MONTH, 1);
            Date currentTime = calBegin.getTime();
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            String dateString = formatter.format(currentTime);
            lDate.add(dateString);
        }
        return lDate;
    }

執行結果
在這裡插入圖片描述

根據某個日期返回該日期對應是周幾

public static String getWeekDay(String dateTime) throws ParseException {
        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date currentDate = formatter.parse(dateTime);
        Calendar cal = Calendar.getInstance();
        cal.setTime(currentDate);
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        return weekDays[w];
    }

比較兩個時間的先後

public static  Boolean validationDate(String beforeTime,String afterTime){
        Boolean result =null;
        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
        log.info("時間比較:"+"beforeTime:"+beforeTime+"-afterTime:"+afterTime);
        try {
            if (formatter.parse(beforeTime).before(formatter.parse(afterTime))){
                log.info("返回結果:true");
                result = true;
            }else {
                log.info("返回結果:false");
                result = false;
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return result;
    }

可以通過設定日期格式來具體設定比較的時間

獲取昨天日期

public static String getYestDay(){
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        date = (Date) calendar.getTime();
        String format = df.format(date);
        return format;
    }

獲取今天日期

public static String getToday(){
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, 0);
        date = (Date) calendar.getTime();
        String format = df.format(date);
        return format;
    }

修改時間日期

public static String dealDate(String oldDateStr) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        Date date = df.parse(oldDateStr);
        SimpleDateFormat df1 = new SimpleDateFormat ("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK);
        Date date1 =  df1.parse(date.toString());
        DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return df2.format(date1);
    }

計算兩個時間差

public static long CalTime(String time1, String time2) {
        DateFormat df = new SimpleDateFormat("HH:mm");
        long minutes = 0L;
        try {
            Date d1 = df.parse(time1);
            Date d2 = df.parse(time2);
            // 這樣得到的差值是微秒級別
            long diff = d1.getTime() - d2.getTime();
            minutes = diff / (1000 * 60);
        } catch (ParseException e) {
            System.out.println("抱歉,時間日期解析出錯。");
        }
        return minutes;
    }

以上方法用到的包,可自行來這裡cv

import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;