我的问题可以通过以下方案轻松创建:
//create a gregorian calendar object that set the date and time as 4th June 2012 at 10:30PM
Calendar calendar = new GregorianCalendar(2012, 6, 4, 22, 30);
//when I print out these:
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.HOUR));
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.MONTH));
System.out.println(calendar.get(Calendar.YEAR));
//output reads as:
4
30
10
4
6
2012
//so does calendar.get(Calendar.DAY_OF_WEEK) == calendar.get(Calendar.DATE) ???
为了让每个人都清楚2012年6月4日是星期一,所以calendar.get(Calendar.DAY_OF_WEEK)不应该在一周的第一天返回0吗?
感谢您的所有帮助和疑虑,请同时验证您所指的来源。
user1442080
答案 0 :(得分:6)
java Calendar类中的月份是从0开始的。所以六月是第5个月。
你实际创建了一个代表7月4日的对象,恰好是星期三,也就是那个星期的第四天。
答案 1 :(得分:4)
应始终查找日历返回的值。{field} ,例如像Calendar.SUNDAY,Calendar.MONDAY,Calendar.JANUARY,Calendar.MARCH等等。 这是因为, Calendar。{field} 返回的值取决于创建Calendar实例时指定的TimeZone。 您可以通过创建具有不同时区的两个日历实例来尝试此操作:
Calendar.getInstance("BST")
和
Calendar.getInstance() // default timezone
现在尝试获取calendar.get(Calendar.DAY_OF_WEEK)
,这将为这两个实例返回不同的整数值。