Calendar的roll()问题,帮忙解决一下,谢谢!

luxx123 2004-07-04 11:56:14
我在用roll(Canlendar.MONTH,-2)的时候,如果设定的日期是1月的话,回退2个月的话,年份就应该减一,但是实际上并不减,只有日子随着变化。

Calendar cal=Calendar.getInstance();
cal.set(1999,Calendar.JANURY,23); //1999-01-23
cal.roll(Canlendar.MONTH,-2); //1999-11-23


为什么这样呢,我想得到的是 1998-11-23
怎么做呢?
...全文
128 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuneng 2004-07-05
  • 打赏
  • 举报
回复
roll是不会改变比较它大的单位的,便如你在二月27号加3天,是不会自动变作三月的。
应该用add(Canlendar.MONTH,-2);
ecaol 2004-07-05
  • 打赏
  • 举报
回复
up

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧