昨天我收到了一个问题的答案: WEEK_OF_YEAR inconsistent on different machines
(基本上,了解了如何根据 firstDayOfWeek 和 minimalDaysInFirstWeek 计算WEEK_OF_YEAR)
但现在我有一个后续问题 - 其他设置可能影响日历使用默认语言环境的能力?因为这是我正在观察的行为(具有正确的en_US默认语言环境):
Calendar c = Calendar.getInstance(); // should use the default locale, per docs
System.out.println(c.getFirstDayOfWeek());
System.out.println(c.getMinimalDaysInFirstWeek());
c = Calendar.getInstance(Locale.getDefault()); // provide the default explicitly
System.out.println(c.getFirstDayOfWeek());
System.out.println(c.getMinimalDaysInFirstWeek());
运行它的输出是:
如果我在Clojure中运行它(JVM语言,所以行为完全相同),它看起来更荒谬(setDefault到getDefault的结果......?!):
user=> (.getFirstDayOfWeek (java.util.Calendar/getInstance))
2
user=> (Locale/setDefault (Locale/getDefault))
nil
user=> (.getFirstDayOfWeek (java.util.Calendar/getInstance))
1
上面的例子在没有任何JVM参数的情况下运行 - 所以,我的问题是,firstDayOfWeek和minimalDaysInWeek的2和4的设置在哪里?而且,也许最重要的是 - 如何永久修复它们?
谢谢!