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;
    }



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