1. 程式人生 > 實用技巧 >DateUtil(日期工具類)

DateUtil(日期工具類)

/**
     * 把日期物件根據生成指定格式的字串
     * @param date
     * @param format
     * @return
     */
    public static String formatDate(Date date,String format){
        String result="";
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        if(date!=null){
            result=sdf.format(date);
        }
        
return result; } /** * 把日期字串生成指定格式的日期物件 * @param str * @param format * @return * @throws Exception */ public static Date formatString(String str,String format) throws Exception{ if(StringUtil.isEmpty(str)){ return null; } SimpleDateFormat sdf
=new SimpleDateFormat(format); return sdf.parse(str); } /** * 生成當前年月日字串 * @return * @throws Exception */ public static String getCurrentDateStr()throws Exception{ Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
return sdf.format(date); } /** * 獲取指定範圍內的日期集合 * @param before * @param end * @return * @throws Exception */ public static List<String> getRangeDates(String before,String end)throws Exception{ List<String> datas=new ArrayList<String>(); Calendar cb = Calendar.getInstance(); Calendar ce = Calendar.getInstance(); cb.setTime(formatString(before,"yyyy-MM-dd")); ce.setTime(formatString(end,"yyyy-MM-dd")); datas.add(formatDate(cb.getTime(),"yyyy-MM-dd")); while(cb.before(ce)){ cb.add(Calendar.DAY_OF_MONTH, 1); datas.add(formatDate(cb.getTime(),"yyyy-MM-dd")); } return datas; } /** * 獲取指定範圍內的月份集合 * @param before * @param end * @return * @throws Exception */ public static List<String> getRangeMonth(String before,String end)throws Exception{ List<String> months=new ArrayList<String>(); Calendar cb = Calendar.getInstance(); Calendar ce = Calendar.getInstance(); cb.setTime(formatString(before,"yyyy-MM")); ce.setTime(formatString(end,"yyyy-MM")); months.add(formatDate(cb.getTime(),"yyyy-MM")); while(cb.before(ce)){ cb.add(Calendar.MONTH, 1); months.add(formatDate(cb.getTime(),"yyyy-MM")); } return months; } public static void main(String[] args) throws Exception{ /*List<String> datas=getRangeDatas("2017-10-28","2017-11-02"); for(String data:datas){ System.out.println(data); }*/ List<String> months=getRangeMonth("2017-09","2018-12"); for(String month:months){ System.out.println(month); } }