Java日期处理

  日常工作中经常遇到关于日期的处理,下面把自个写好的Java代码段分享一下,也当做自个的一个备份,同时也欢迎交流,如若分享请注明出处,谢谢。

1.返回两个时间段之间的月份:

  

/**
     * 返回任意两个月份之间的所有月份,以list返回
     * 比如起止月份参数为2013-12,2014-02 则返回2013-12,2014-01,2014-02的list
     * @author HsuChan
     * @version v1.0 2014-10-14
     * @param startDate
     * @param endDate
     * @return List<String>
     * @throws ParseException
     */
    public static List<String> getMonthBetween(String startDate,String endDate) throws ParseException {
        
        ArrayList<String> ymList = new ArrayList<String>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
        Date minDate = sdf.parse(startDate);
        Date maxDate = sdf.parse(endDate);
        Calendar min = Calendar.getInstance();
        Calendar max = Calendar.getInstance();

        min.setTime(minDate);
        min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);

        max.setTime(maxDate);
        max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);

        Calendar curr = min;//临时变量
        while (curr.before(max)) {//只要在最大月份前则循环添加到list中
            ymList.add(sdf.format(curr.getTime()));
            curr.add(Calendar.MONTH, 1);//顺次加一
        }

        return ymList;
    }
原文地址:https://www.cnblogs.com/hsuchan/p/4059421.html