可以通过调用Calendar.getInstance(locale).getFirstDayOfWeek()
来获取JVM上的第一周是星期几。但这个信息是基于语言还是国家呢?
为了解释这种行为,CLDR实现是正确的,即应该通过地区来定义星期的第一天,而不是通过语言。
获取一周中的第一天是什么,例如,在美国是星期日,在法国是星期一。
Calendar.getInstance(new Locale("fi", "US")).getFirstDayOfWeek()
时,它将返回MONDAY,尽管该国家是美国。 在JDK8上,这是基于语言的。难道Oracle JVM工作方式不同吗? - Martin Vysny
java.locale.providers
设置为CLDR,COMPAT
,以优先使用CLDR语言环境数据。或者在Java 9中将其设置为COMPAT,CLDR
,以优先使用Java 8兼容数据而非CLDR。 - Ole V.V.