java – Calendar#getFirstDayOfWeek()返回错误的值

我可能会忽略一些令人难以置信的明显事物,但为什么会这样:

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,如其他答案所指出的那样.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...