我正在查看 Java 8 的新 datetime 包的教程。在关于 theDayOfWeek
和Month
enums的页面上,它说DayOfMonth
enum 从星期一到星期日运行。这是为什么?我使用过的所有其他系统(包括 .NET)都有从星期日开始的一周。
问问题
328 次
2 回答
13
可能是因为 ISO8601,如 timeanddate.com 上所述:
根据国际标准 ISO 8601,星期一是一周的第一天。紧随其后的是周二、周三、周四、周五和周六。周日是第七天,也是最后一天。
尽管这是国际标准,但包括美国、加拿大和澳大利亚在内的一些国家/地区将星期日视为一周的开始。
可以在此处找到 1988 版标准的一些更直接的引用:
- 附件 A.3 .... 对于商业目的,即可能使用周数的会计、计划和类似目的,已发现星期一最适合作为一周的第一天。
- 3.17 周,日历:一个日历年内的一个 7 天时间段,从星期一开始,由其在年内的序数标识;一年中的第一个日历周包括该年的第一个星期四。在公历中,这相当于包括 1 月 4 日在内的一周。
- 5.2.3 .... 星期几由一位十进制数字表示。星期一应确定为任何日历周的第 [1] 天,同一周的后续天应按升序编号到星期日(第 [7] 天)。
于 2018-04-24T18:07:34.903 回答
8
来自 JavaDocs:
每周的每一天都有一个 int 值。int 值遵循 ISO-8601 标准,从 1(星期一)到 7(星期日)。建议应用程序使用 enum 而不是 int 值以确保代码清晰。
https://docs.oracle.com/javase/8/docs/api/java/time/DayOfWeek.html
于 2018-04-24T18:07:57.860 回答