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

Mar*_*sny 6 java jvm calendar

可以通过调用获取JVM上一周的第一天Calendar.getInstance(locale).getFirstDayOfWeek().然而,这种基于信息语言还是以国家为基础?

Mar*_*sny 6

事实证明,这是JDK版本相关的.JDK8返回基于语言周的第一天,所以它返回SUNDAY的"en_FI" "en_US"和MONDAY为"fi_FI"和"fi_US".

但是,JDK9切换到CLDR系统(更逻辑地)使用国家.因此,JDK9将返回MONDAYfor "en_FI"和"fi_FI"locales,并将返回SUNDAYfor "fi_US"和"en_US".

有关详细信息,请参阅JEP 252.

另外,引用JDK-8203280:

要为此行为添加说明,CLDR实现是正确的,即一周的第一天应由区域定义,而不是由语言定义.

  • 它"基于语言"并不是真的.它仅基于Java 8和9之间的*不同数据*. (2认同)