我可能忽略了一些非常明显的事情,但为什么会这样:
final Calendar calendar = Calendar.getInstance(Locale.GERMAN);
System.out.println(calendar.getFirstDayOfWeek());
结果
1 (Sunday)
代替
2 (Monday)
?
在有人声称“对于所有讲德语的人来说,一周的第一天是星期日”( again ) 之前,它是 not : [D] 是星期几,从 1 到 7,从星期一开始到星期日结束。"
事实上,Locale.GERMANY
会产生正确的“星期一”。
为什么对于德语语言环境来说一周的第一天是星期日?
最佳答案
特定语言的所有默认语言环境,例如Locale.GERMAN
、Locale.FRENCH
、Locale.ENGLISH
默认未指定区域设置为美国。实际上,这些常量表示居住在美国的说德语、法语或英语的人。
这个问题可能没有好的答案,因为仅了解语言不足以计算出一周的第一天。可能是因为 Java 是由一家美国公司针对美国市场开发的,默认区域设置值使用美国作为国家/地区。
如果您需要德语语言环境,请使用 Locale.GERMANY
,正如其他答案所指出的那样。
关于java - Calendar#getFirstDayOfWeek() 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54691981/