Calendar.get(Calendar.DAY_OF_WEEK) 是否受到 Calendar.getFirstDayOfWeek() 的影响?

Is Calendar.get(Calendar.DAY_OF_WEEK) impacted by Calendar.getFirstDayOfWeek()?

也许是个愚蠢的问题,但我有一个问题在 Java 文档中没有找到。

Calendar.get(Calendar.DAY_OF_WEEK) 的值是否会根据 Calendar.getFirstDayOfWeek() 的任何值变化而变化?

或者 Calendar.get(Calendar.DAY_OF_WEEK) 是否总能给出正确答案(基于当前语言环境)?

Does the value of Calendar.get(Calendar.DAY_OF_WEEK) change based on any value change of Calendar.getFirstDayOfWeek()

没有。星期天就是星期天 (Calendar.SUNDAY),不管那是一周的第一天、第二天还是第七天。 (如果您使用的是可能具有完全不同的工作日的非公历,那当然是另一回事。)

Calendar.getFirstDayOfWeek() 不影响 Calendar.get(Calendar.DAY_OF_WEEK) 的值。它影响的可能是 Calendar.WEEK_OF_YEAR 因为在计算当前周数时会考虑一周的第一天。

DAY_OF_WEEK 常量的文档实际上说:

Field number for get and set indicating the day of the week. This field takes values SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, and SATURDAY.

这意味着从 get 返回的值是 而不是 解释为序数。这些都是 Calendar class 中的所有(静态)常量。他们评估为 1,2,3 的事实不应该让您感到困惑。他们的意思是 "Sunday, Monday, Tuesday",而不是 "First day, second day, third day"。