JAVA GregorianCalendar add方法存在bug

GregorianCalendar gc = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
SimpleDateFormat foramt = new SimpleDateFormat("yyyy-MM-dd");
Date d = foramt.parse("2014-02-01");
gc.setTime(d);
System.out.println(foramt.format(gc.getTime()));
gc.setTimeInMillis(d.getTime());
gc.add(Calendar.MONTH, 1);
System.out.println(foramt.format(gc.getTime()));
gc.add(Calendar.MONTH, 1);
System.out.println(foramt.format(gc.getTime()));
gc.add(Calendar.MONTH, 1);
System.out.println(foramt.format(gc.getTime()));

The result is :

2014-02-01
2014-03-01
2014-03-29 (it should be 2014-04-01)
2014-04-29

这是JAVA本身的bug ,已经确认在最新的jdk1.8.0_05 中仍然存在。

mail : longbow.liu@carel.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值