java中利用Calendar获得月份的时候为什么要加1?

polo_longsan 2012-04-30 10:04:29
package C;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
public class GetTime {
public static void main(String []args)
{
Date taday=new Date(); //获取当前日期和时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(taday);
System.out.println("当前时间为:"+dateString);

long currentTime=System.currentTimeMillis(); //当前时间的毫秒数

Date tomorrow=new Date(currentTime+24*60*60*1000);
System.out.println("明天是"+tomorrow.toString());

Calendar now=Calendar.getInstance();
int year=now.get(Calendar.YEAR);
int month=now.get(Calendar.MONTH)+1;//?为什么要加1
int day=now.get(Calendar.DATE);
System.out.println("今天是"+year+"年"+month+"月"+day+"日");

int week=now.get(Calendar.DAY_OF_WEEK);
switch(week)
{
case 1:
System.out.println("星期日");
break;
case 2:
System.out.println("星期一");
break;
case 3:
System.out.println("星期二");
break;
case 4:
System.out.println("星期三");
break;
case 5:
System.out.println("星期四");
break;
case 6:
System.out.println("星期五");
break;
case 7:
System.out.println("星期六");
break;
case 8:
System.out.println("星期日");
break;
}
}
}
...全文
3859 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanglong1615 2012-08-15
  • 打赏
  • 举报
回复
这就是为什么月份从0开始,而日期是从1开始的。
wanglong1615 2012-08-15
  • 打赏
  • 举报
回复
在汉语中一月是跟数字挂钩的,而实际上在英语中January并不是跟数字挂钩的,他仅仅是一个单词表示月。
polo_longsan 2012-05-01
  • 打赏
  • 举报
回复
谢谢各位大虾!
VanBaston 2012-05-01
  • 打赏
  • 举报
回复
Calendar月份从一月到十二月对应的值是0 - 11所以都要+1的啊
爱摸鱼de老邪 2012-04-30
  • 打赏
  • 举报
回复
为什么不看API说明呢?Calendar的月份从 0开始计数。很多问题其实应该先翻API看看。
zhucegepp 2012-04-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
Calendar.MONTH =0 Calendar的月份是从 0开始算的, 所以要+1.
[/Quote]
+1
sdojqy1122 2012-04-30
  • 打赏
  • 举报
回复
Calendar.MONTH =0 Calendar的月份是从 0开始算的, 所以要+1.
宏Lee 2012-04-30
  • 打赏
  • 举报
回复
你看看windows的日历就知道了,看看星期天排在什么位置

62,614

社区成员

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

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