人们可以通过调用Calendar.getInstance(locale).getFirstDayOfWeek()
获得一周的JVM上的第一天。然而,就是这个信息的语言基础,或以国家为基础?
事实证明,这是JDK版本相关。 JDK8返回基于语言周的第一天,所以它返回SUNDAY
"en_FI"
"en_US"
和MONDAY
为"fi_FI"
和"fi_US"
。
然而,JDK9切换到哪个(更多逻辑上)使用国家CLDR系统。所以,JDK9将返回MONDAY
既为"en_FI"
和"fi_FI"
语言环境,并且将返回SUNDAY
为"fi_US"
和"en_US"
。
见JEP 252了解更多详情。
此外,从JDK-8203280引用:
为了说明添加到这种行为,CLDR实现是正确的,即一周的第一天应该由区域不是由语言定义。
根据该文件,它是国家为基础的:https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#getFirstDayOfWeek()
获取一周的第一天是什么;例如,星期日在美国,MONDAY在法国。