获取上一个月的同一天

下面的代码是我在网上搜到的,成功解决的我的问题,我一直用的是set方法,不好使,改为add后就可以了!

public static Calendar getDateOfLastMonth(Calendar date) {  
    Calendar lastDate = (Calendar) date.clone();  
    lastDate.add(Calendar.MONTH, -1);  
    return lastDate;  
}  
 
public static Calendar getDateOfLastMonth(String dateStr) {  
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");  
    try {  
        Date date = sdf.parse(dateStr);  
        Calendar c = Calendar.getInstance();  
        c.setTime(date);  
        return getDateOfLastMonth(c);  
    } catch (ParseException e) {  
        throw new IllegalArgumentException("Invalid date format(yyyyMMdd): " + dateStr);  
    }  
}  
 
public static void main(String[] args) {  
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");  
    System.out.println(sdf.format(getDateOfLastMonth("20000330").getTime()));  
    System.out.println(sdf.format(getDateOfLastMonth("20000331").getTime()));  

猜你喜欢

转载自blog.csdn.net/chj97/article/details/32331353