java.util.Date提供错误的日期作为输出。
java.util.Date date = new Date(2014,03,01);
System.out.println("day is" +date.getDay());
输出:日是3
实际上它应该是7更新:非常感谢我能够获得输出这是我的代码
java.util.Calendar c = java.util.Calendar.getInstance();
c.clear();
c.set(year,month,dd);
System.out.println("day of week "+c.get(java.util.Calendar.DAY_OF_WEEK));
答案 0 :(得分:5)
我想你想创建2014年3月1日的日期。但是在你的构造函数调用中你创建日期3914年4月1日! API告诉您原因:
A year y is represented by the integer y - 1900. A month is represented by an integer from 0 to 11; 0 is January, 1 is February, and so forth; thus 11 is December. A date (day of month) is represented by an integer from 1 to 31 in the usual manner.
编辑:也不推荐使用此构造函数。请改用日历。
答案 1 :(得分:2)
根据getDay()
返回此日期所代表的星期几。归来了 值(0 =星期日,1 =星期一,2 =星期二,3 =星期三,4 = 星期四,5 =星期五,6 =星期六)代表星期几 包含或以此为代表的时刻开始 日期对象,在本地时区中解释。
所以 不是一个月的日子 。另请注意,您使用的是已弃用的日期构造函数和方法。您可以使用java.util.Calendar
第03
个月 不是三月 ,其 四月
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2014);
c.set(Calendar.MONTH, 3);
c.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(c.get(Calendar.DAY_OF_WEEK));
此处的输出也是3,因为日期代表2014年4月1日,即星期二和Calendar.DAY_OF_WEEK
doc
获取和设置的字段编号,表示星期几。这个 字段取值SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY, 星期五和星期六。
而Calendar.TUESDAY
是3