Is first-day-of-week language-based or country-based on JVM?

As it turns out, this is JDK version-dependent. JDK8 returns first day of week based on language, so it returns SUNDAY for "en_FI" "en_US" and MONDAY for "fi_FI" and "fi_US".

However, JDK9 switched to the CLDR system which (more logically) uses country. So, JDK9 will return MONDAY both for "en_FI" and "fi_FI" locales, and will return SUNDAY for "fi_US" and "en_US".

See JEP 252 for more details.

Also, quoting from JDK-8203280:

To add an explanation to this behavior, the CLDR implementation is correct, i.e., the first day of week should be defined by the region, not by the language.

Tags:

Java

Jvm

Calendar