JVM是基于一周的第一天语言还是基于国家/地区?

时间:2019-02-07 11:18:37

标签: java calendar jvm

通过调用Calendar.getInstance(locale).getFirstDayOfWeek(),可以在JVM上获得一周的第一天。但是,这种信息是基于语言还是基于国家/地区?

2 个答案:

答案 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,   法国的星期一。