Date 不确定get(日历、星期几)返回的内容

Date 不确定get(日历、星期几)返回的内容,date,calendar,get,dayofweek,gregorian-calendar,Date,Calendar,Get,Dayofweek,Gregorian Calendar,我的问题可以通过以下场景轻松创建: //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_O

我的问题可以通过以下场景轻松创建:

 //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日是星期一,日历就不应该了。get(calendar.DAY_of u WEEK)在一周的第一天返回0吗

感谢您的帮助和关注,同时请验证您所指的来源


user1442080

java日历类中的月份是基于0的。所以六月是第五个月


实际上,您创建了一个表示7月4日的对象,正好是星期三,这是该周的第四天。

应该始终查找日历返回的值。{field}例如,像Calendar.SUNDAY、Calendar.MONDAY、Calendar.一月、Calendar.MARCH等。 这是因为,Calendar.{field}返回的值取决于创建Calendar实例时指定的时区。 您可以通过创建两个具有不同时区的日历实例来尝试:

Calendar.getInstance("BST")


现在尝试获取
calendar.get(calendar.DAY\u OF\u WEEK)
,它将为这两个实例返回不同的整数值。

谢谢!我还注意到日期也从0开始。所以我实际上创造了一个代表7月5日的物体。我很高兴。您还可以查看更直观的时间库:。(哦,您能接受我的回答吗;-))calendar.get(calendar.DAY\u OF_WEEK)如何返回不同的整数值?星期几的值是常量,您仍然需要将星期几的返回值与Calendar.FRIDAY(例如)进行比较。一周中第一天的值可能会根据时区而改变,但是一周中第一天返回的值始终需要与java日历常量对齐。
Calendar.getInstance() // default timezone