java - Calendar#getFirstDayOfWeek() 返回错误值

标签 java calendar locale dayofweek

我可能忽略了一些非常明显的事情,但为什么会这样:

final Calendar calendar = Calendar.getInstance(Locale.GERMAN);
System.out.println(calendar.getFirstDayOfWeek());

结果

1  (Sunday)

代替

2 (Monday)

?

在有人声称“对于所有讲德语的人来说,一周的第一天是星期日”( again ) 之前,它是 not : [D] 是星期几,从 1 到 7,从星期一开始到星期日结束。"

事实上,Locale.GERMANY 会产生正确的“星期一”。

为什么对于德语语言环境来说一周的第一天是星期日?

最佳答案

特定语言的所有默认语言环境,例如Locale.GERMANLocale.FRENCHLocale.ENGLISH 默认未指定区域设置为美国。实际上,这些常量表示居住在美国的说德语、法语或英语的人。

这个问题可能没有好的答案,因为仅了解语言不足以计算出一周的第一天。可能是因为 Java 是由一家美国公司针对美国市场开发的,默认区域设置值使用美国作为国家/地区。

如果您需要德语语言环境,请使用 Locale.GERMANY,正如其他答案所指出的那样。

关于java - Calendar#getFirstDayOfWeek() 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54691981/

相关文章:

java - Richfaces日历 "ü"(&#252)字符问题

由于未知模块(moment js 语言环境),React-Native 版本崩溃

java - Recycler View 线性布局管理器返回 null

java - 启动 Micronaut 应用程序时如何打印环境变量

java - setTextViewText 不更新小部件

java - 在 Eclipse 控制台中用粗体写一个字符串?

android - 日历 getTimeInMillis() 是否依赖于时区?

html - 如何在 Firefox 中隐藏 <input type ="date"> 的弹出日历?

c++ - 打印所有 std::locale 名称 (Windows)

sql-server - 具有不同语言的 SQL Server Collat​​ion/ADO.NET DataTable.Locale