Calendar#getFirstDayOfWeek() returns 错误值
Calendar#getFirstDayOfWeek() returns wrong value
我可能忽略了一些非常明显的事情,但为什么会这样:
final Calendar calendar = Calendar.getInstance(Locale.GERMAN);
System.out.println(calendar.getFirstDayOfWeek());
结果
1 (Sunday)
而不是
2 (Monday)
?
之前有人声称 "the first day of the week is Sunday for all German speaking people" (again), it's not: [D] 是工作日编号,从 1 到 7,从星期一开始到星期日结束。"
事实上,Locale.GERMANY
结果是正确的 "Monday"。
为什么在德语地区一周的第一天是星期日?
你自己回答了这个问题,在你的声明中你使用了德语的语言环境而不是国家,将其更改为
final Calendar calendar = Calendar.getInstance(Locale.GERMANY);
(注意,由于您没有更改国家/地区,因此使用默认国家/地区)
特定语言的所有默认语言环境,例如Locale.GERMAN
、Locale.FRENCH
、Locale.ENGLISH
默认未指定区域设置为美国。实际上,这些常量代表居住在美国的说德语、法语或英语的人。
这个问题可能没有好的答案,因为仅了解语言不足以计算出一周的第一天。可能是因为 Java 是由一家美国公司针对美国市场开发的,默认区域设置值使用美国作为国家/地区。
如果您需要德语语言环境,请使用 Locale.GERMANY
,正如其他答案所指出的那样。
我可能忽略了一些非常明显的事情,但为什么会这样:
final Calendar calendar = Calendar.getInstance(Locale.GERMAN);
System.out.println(calendar.getFirstDayOfWeek());
结果
1 (Sunday)
而不是
2 (Monday)
?
之前有人声称 "the first day of the week is Sunday for all German speaking people" (again), it's not: [D] 是工作日编号,从 1 到 7,从星期一开始到星期日结束。"
事实上,Locale.GERMANY
结果是正确的 "Monday"。
为什么在德语地区一周的第一天是星期日?
你自己回答了这个问题,在你的声明中你使用了德语的语言环境而不是国家,将其更改为
final Calendar calendar = Calendar.getInstance(Locale.GERMANY);
(注意,由于您没有更改国家/地区,因此使用默认国家/地区)
特定语言的所有默认语言环境,例如Locale.GERMAN
、Locale.FRENCH
、Locale.ENGLISH
默认未指定区域设置为美国。实际上,这些常量代表居住在美国的说德语、法语或英语的人。
这个问题可能没有好的答案,因为仅了解语言不足以计算出一周的第一天。可能是因为 Java 是由一家美国公司针对美国市场开发的,默认区域设置值使用美国作为国家/地区。
如果您需要德语语言环境,请使用 Locale.GERMANY
,正如其他答案所指出的那样。