通过调用Calendar.getInstance(locale).getFirstDayOfWeek()
,可以在JVM上获得一周的第一天。但是,这种信息是基于语言还是基于国家/地区?
答案 0 :(得分:6)
事实证明,这与JDK版本有关。 JDK8根据语言返回星期的第一天,因此它返回<dependency>
<groupId>com.myshop.automatedtests</groupId>
<artifactId>myshop-automatedtestscore</artifactId>
<version>3.1.17-SNAPSHOT</version>
</dependency>
SUNDAY
的{{1}}和"en_FI"
和"en_US"
的{{1}}。 >
但是,JDK9切换到了CLDR系统(从逻辑上来说)使用国家/地区。因此,JDK9将为MONDAY
和"fi_FI"
的语言环境都返回"fi_US"
,并为MONDAY
和"en_FI"
的返回"fi_FI"
。
有关更多详细信息,请参见JEP 252。
也引用JDK-8203280:
要对此行为添加一个解释,CLDR实现是正确的,即一周的第一天应该由地区而不是语言来定义。
答案 1 :(得分:1)
根据文档,该文档基于国家/地区:https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#getFirstDayOfWeek()
获取一周的第一天;例如,在美国的SUNDAY, 法国的星期一。