Calendar 類 的 getDate 為甚麼不正確 ?

fzarrow 2002-05-10 12:07:09
Calendar dinstance = new GregorianCalendar();
System.out.println(dinstance.get(Calendar.YEAR));
System.out.println(dinstance.get(Calendar.MONTH));
System.out.println(dinstance.get(Calendar.DATE));
SimpleDateFormat dateFormat = new SimpleDateFormat("dd MM yyyy");
Date curDate = (Date) dinstance.getTime();
System.out.println(dateFormat.format(curDate));

輸出
2002
4
10
10 05 2002
為甚麼 月份大了 1 月?
...全文
45 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzarrow 2002-05-10
  • 打赏
  • 举报
回复
SimpleDateFormat dateFormat = new SimpleDateFormat("dd MM yyyy");
Date curDate = new Date();
System.out.println(dateFormat.format(curDate));
輸出
10 05 2002
也不正確 , 為甚麼 月份大了 1 月?

allenzz 2002-05-10
  • 打赏
  • 举报
回复
Calendar类的月是从0开始的。
gxj0637 2002-05-10
  • 打赏
  • 举报
回复
好象就是这样,具体原因不太清楚
fzarrow 2002-05-10
  • 打赏
  • 举报
回复
sorry ,是 getTime()
jekend 2002-05-10
  • 打赏
  • 举报
回复
Calendar 的月份表示從 0 開始, getTime() 的結果就是正確的 .
compareTo() 不能得到相差的天數 ,可以用以下方式得到 ;
(date1.getTime() - date2.getTime())/86400000
saintKnight 2002-05-10
  • 打赏
  • 举报
回复
所有日期的月份都是从0开始的,4就代表5月份。
fzarrow 2002-05-10
  • 打赏
  • 举报
回复
Calendar 本身沒有問題, 但是 getTime() 就會 大一個月 .
2001-12-1 ==> getTime() ==> 2000-1-1 .這怎麼用阿 ?
也許, Date 類以後就不用了 .
但是,我想調用它的 CompareTo 比較兩個日期 相差的天數 , 有沒有其他的方式可以實現呢 ?

62,635

社区成员

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

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