Calendar日期的java轉換



    /**
     * 獲取輸入日曆今天的起止時間
     * @param cal
     * @return
     */
    public static List<String> getCurrentDay(Calendar cal){
        List<String> list=new ArrayList<>();
        Calendar calendar=(Calendar) cal.clone();
        String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
        String stop=start;
        list.add(start);
        list.add(stop);  
        return list;
    }
    /**
     * 獲取輸入日曆明天的起止時間
     * @param cal
     * @return
     */
    public static List<String> getNextDay(Calendar cal){
        List<String> list=new ArrayList<>();
        Calendar calendar=(Calendar) cal.clone();
        calendar.add(Calendar.DATE, 1);
        String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
        String stop=start;
        list.add(start);
        list.add(stop);  
        return list;
    }
    /**
     * 獲取輸入日曆的本週起止時間
     * @param cal 輸入的日曆
     * @return 該日曆的本週的起止時間字符串
     */
    public static List<String> getCurrentWeek(Calendar cal){
        List<String> list=new ArrayList<>();
        Calendar calendar=(Calendar) cal.clone();
        int week=cal.get(Calendar.DAY_OF_WEEK);
        //減去的天數
        int minusDay=week!=1?week-2:6;
        //本週的第一天
        calendar.add(Calendar.DATE, -minusDay);
        String start= getDateToString(calendar.getTime(), "yyyy/MM/dd");
        //本週的最後一天
        calendar.add(Calendar.DATE, 6);
        String stop=getDateToString(calendar.getTime(), "yyyy/MM/dd");
        list.add(start);
        list.add(stop);  
        return list;
    }
    /**
     * 獲取輸入日曆的下週起止時間
     * @param cal 輸入的日曆
     * @return  該日曆的下週的起止時間字符串
     */
    public static List<String> getNextWeek(Calendar cal){
        List<String> list=new ArrayList<>();
        Calendar calendar=(Calendar) cal.clone();
        int week=cal.get(Calendar.DAY_OF_WEEK);
        //減去的天數
        int minusDay=week!=1?week-2:6;
        //下週的第一天
        calendar.add(Calendar.DATE, 7-minusDay);
        String start= getDateToString(calendar.getTime(), "yyyy/MM/dd");
        //下週的最後一天
        calendar.add(Calendar.DATE, 6);
        String stop=getDateToString(calendar.getTime(), "yyyy/MM/dd");
        list.add(start);
        list.add(stop);  
        return list;
    }
    /**
     * 獲取輸入日曆本月的起止時間
     * @param cal
     * @return
     */
    public static List<String> getCurrentMonth(Calendar cal){
        List<String> list=new ArrayList<>();
        Calendar calendar=(Calendar) cal.clone();
        calendar.set(Calendar.DATE, 1);
        String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
        String stop=start;
        list.add(start);
        list.add(stop);  
        return list;     
    }
    /**
     * 獲取輸入日曆下月的起止時間
     * @param cal
     * @return
     */
    public static List<String> getNextMonth(Calendar cal){
        List<String> list=new ArrayList<>();
        Calendar calendar=(Calendar) cal.clone();
        calendar.add(Calendar.MONTH, 1);
        calendar.set(Calendar.DATE, 1);
        String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
        String stop=start;
        list.add(start);
        list.add(stop);  
        return list;        
    }
    
    /**
     * 將一個表示時間的Calendar值按年 月 日 小時  分鐘 秒 調整,形成新的時間
     * @param cal   表示待調整的日曆
     * @param year  調整的年數,正數爲向後調整,負數爲向前調整
     * @param month 調整的月數,正數爲向後調整,負數爲向前調整
     * @param day   調整的天數,正數爲向後調整,負數爲向前調整
     * @param hour  調整的時數,正數爲向後調整,負數爲向前調整
     * @param min   調整的分數,正數爲向後調整,負數爲向前調整
     * @param sec   調整的秒數,正數爲向後調整,負數爲向前調整
     * @return 調整後的日曆
     */
    public static Calendar getAdjustCalendar(Calendar cal, int year, int month,
            int day,int hour,int min,int sec){
        Calendar calendar=(Calendar) cal.clone();

        calendar.add(Calendar.YEAR, year);
        calendar.add(Calendar.MONTH, month);
        calendar.add(Calendar.DATE,day );
        calendar.add(Calendar.HOUR, hour);
        calendar.add(Calendar.MINUTE, min);
        calendar.add(Calendar.SECOND, sec);
        return calendar;
    }
    /**
     * 將一個表示時間的Calendar值按指定的域調整,形成新的時間
     * @param cal 表示待調整的日曆
     * @param field 要調整的域(Calendar.YEAR,Calendar.MONTH,Calendar.DATE,Calendar.HOUR,Calendar.MINUTE,Calendar.SECOND)
     * @param mount 調整的數值,正數爲向後調整,負數爲向前調整
     * @return 調整後的日曆
     */
    public static Calendar getAdjustCalendar(Calendar cal,int field,int mount){
        Calendar calendar=null;
        switch (field) {
        case Calendar.YEAR:
            calendar=getAdjustCalendar(cal, mount, 0, 0, 0, 0, 0);
            break;
        case Calendar.MONTH:
            calendar = getAdjustCalendar(cal, 0, mount, 0, 0, 0, 0);
            break;
        case Calendar.DATE:
            calendar = getAdjustCalendar(cal, 0, 0, mount, 0, 0, 0);
            break;
        case Calendar.HOUR:
            calendar = getAdjustCalendar(cal, 0, 0, 0, mount, 0, 0);
            break;
        case Calendar.MINUTE:
            calendar = getAdjustCalendar(cal, 0, 0, 0, 0, mount, 0);
            break;
        case Calendar.SECOND:
            calendar = getAdjustCalendar(cal, 0, 0, 0, 0, 0, mount);
            break;
        default:
            calendar=null;
            break;
        }
        return calendar;
    }
    /**
     * 獲取指定日期的字符串格式
     * @param date 指定的日期
     * @param pattern 指定的格式
     * @return 轉換之後的字符串
     */
    public static String getDateToString(Date date,String pattern){
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
        String str=simpleDateFormat.format(date);
        System.out.println(str);
        return str ;

    }
    /**
     * 獲取指定字符串的日期格式
     * @param str 指定字符串
     * @param pattern 指定的格式
     * @return 轉換之後的日期
     * @throws ParseException 解析異常
     */
    public static Date getStringToDate(String str,String pattern) throws ParseException{
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
        Date date=simpleDateFormat.parse(str);
        System.out.println(date);
        return date;
    }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章