首页 新闻 会员 周边 捐助

Calendar增加月份方法,超过十二个月后,年份为什么不变

-1
悬赏园豆:5 [已解决问题] 解决于 2017-02-18 23:28

    public static void main(String[] args) throws ParseException {
        /*
         *
         */
        String dateFormat = "yyyy-mm-dd";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
        Date date = sdf.parse("2015-12-01");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.YEAR, 3);
        System.out.println(calendar.getTime());
        calendar.add(Calendar.MONTH, 3);
        System.out.println(calendar.getTime());
        calendar.add(Calendar.DAY_OF_YEAR, 10);
        calendar.set(Calendar.DAY_OF_WEEK, 3);
        
        System.out.println(calendar.getTime());
    }

侯熙的主页 侯熙 | 初学一级 | 园豆:197
提问于:2017-02-11 21:17
< >
分享
最佳答案
0

测试了一下:

把格式变一下就可以,改成如下

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date date = sdf.parse("20151201");

具体原因估计得看源码

收获园豆:5
但行好事-莫问前程 | 菜鸟二级 |园豆:254 | 2017-02-15 17:09

应该变为2019年才对啊

侯熙 | 园豆:197 (初学一级) | 2017-02-15 23:39

@侯熙: 是变成了2019啊

我的输出

 

Sat Dec 01 00:00:00 CST 2018
Fri Mar 01 00:00:00 CST 2019
Tue Mar 12 00:00:00 CST 2019

但行好事-莫问前程 | 园豆:254 (菜鸟二级) | 2017-02-16 09:56

@谦谦王子: 嗯对的,是我写错了

侯熙 | 园豆:197 (初学一级) | 2017-02-16 20:26
其他回答(2)
0

试试在date上增加月份,然后再设置到Calendar

诶碧司 | 园豆:1912 (小虾三级) | 2017-02-13 11:23
0

楼上测试得没有问题。

String dateFormat = "yyyy-mm-dd";
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Date date = sdf.parse("2015-12-01");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.YEAR, 3);
System.out.println("year:"+calendar.getTime());
calendar.add(Calendar.MONTH, 15);
System.out.println("month:"+calendar.getTime());
calendar.add(Calendar.DAY_OF_YEAR, 10);
calendar.set(Calendar.DAY_OF_WEEK, 3);
System.out.println("day:"+calendar.getTime());

--------------------------------------------------------------

结果:

year:Mon Jan 01 00:12:00 CST 2018
month:Mon Apr 01 00:12:00 CST 2019
day:Tue Apr 09 00:12:00 CST 2019

文苏 | 园豆:204 (菜鸟二级) | 2017-02-16 15:36

"yyyy-mm-dd"  应该是MM

支持(1) 反对(0) 侯熙 | 园豆:197 (初学一级) | 2017-02-16 20:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册