Date类的使用错误

gypsyfish 2004-07-20 10:20:43
Date oldDate = new Date (2004, 3, 31);
int y =oldDate.getYear();
int m= oldDate.getMonth();
int d = oldDate.getDate();
System.out.println("y="+y+", m="+m+", d="+d);

结果:
y=2004, m=4, d=1

请问该如何解决?
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
binny 2004-07-20
  • 打赏
  • 举报
回复
变态不只是月,星期也是 星期一的值是2

哎,没办法谁让java是美国人的呢
shine333 2004-07-20
  • 打赏
  • 举报
回复
>因为Java的Month是从0开始的(真是变态),

这个主要是因为西方人给每个月都起了名字,谈到五月,他们说May, (虽然可以写5),因此他们觉得没什么问题,可是到了东方,一切就混乱了
ChDw 2004-07-20
  • 打赏
  • 举报
回复
因为Java的Month是从0开始的(真是变态),所以3,31是表示4月31日。所以自动跳到5月了
GaryZhu 2004-07-20
  • 打赏
  • 举报
回复
这个不算是错误,在java中month的范围是0-11,所以你定义的实际上是4月31日(没有这一天),Date类内部把它处理成5月1日,所以你看到的是 m=4,d=1(代表5月1日)

另外,new Date (2004, 3, 31)这种用法已经建议废弃了,最好改用GregorianCalendar类
liusoft 2004-07-20
  • 打赏
  • 举报
回复
月份是以0开始的,你用的这些方法都是已经废弃的方法,建议不要使用!

62,623

社区成员

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

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