TL;博士
YearWeek.parse("2017-W01")
ISO 8601
或解析为其它格式?
是的,使用其他格式。
将日期时间值序列化为文本时,使用标准ISO 8601格式。该标准包括support for week dates。
对于一年四周的数字,连字符,W
和一年中的两位数字。
2017年-W01
得到清晰的您一个“周”的定义。在ISO 8601的定义是:
- 本周#1包含了一年的第一个星期四,并且
- 是从周一至周日。
因此,这些年可以运行52周或53周。并且请注意,根据这一定义,今年的前几天可能是前一年的周编号。同样,一年中的最后几天可能会在下一个星期编号。
如果您想在该周内指定特定日期,请在星期一至星期日附加一个连字符和一个数字1-7。
提示:要在计算机上默认查看ISO 8601周数,您可能需要调整操作系统设置。例如,在macOS上设置系统首选项>语言&地区>日历> ISO 8601,使应用程序(如Calendar.app)能够显示具有此标准定义的星期编号。
2017年,W01-7
顺便说,一对夫妇类似表述的:
- 顺序日期意味着一年从运行天的年数1-366是年份,连字符和三位数字:
2017-123
- 不带年份的月份是两个连字符,月份编号,连字符和日期编号:
--01-07
请注意,在问题中使用Locale
与标准ISO 8601格式无关。
YearWeek
Unfortunatley有像YearMonth没有对象周...
唉唉,但有是这样一类。
对于一个班直接代表每周的想法,请参阅correct Answer by Henrik。答案显示ThreeTen-Extra图书馆的类YearWeek
。
YearWeek
类可以直接解析并生成标准格式的字符串。
YearWeek yw = YearWeek.parse("2017-W01");
你可以用方法YearWeek
比较对象:compareTo
,equals
,isBefore
,isAfter
。
yw.isBefore(thatYw)
的ThreeTen-EXTRA项目提供了其他类,如YearQuarter
,你可能会发现有用的。
你在这里定义的“星期”究竟是什么? –