获取本地日期的周数 (Java 8)
2022-09-01 00:42:32
我正在尝试获取完整本地日期的周数,格式为:
dd.MM.yyy
我没有在Java 8 Date API中找到返回周数的函数,并且我试图创建一个算法,但它不起作用。
我正在尝试获取完整本地日期的周数,格式为:
dd.MM.yyy
我没有在Java 8 Date API中找到返回周数的函数,并且我试图创建一个算法,但它不起作用。
一个小小的警告。我还没有测试过这个,但是看看WeekFields
和LocalDate.get
的API文档,你应该做这样的事情:
LocalDate date = ...;
// Or use a specific locale, or configure your own rules
WeekFields weekFields = WeekFields.of(Locale.getDefault());
int weekNumber = date.get(weekFields.weekOfWeekBasedYear());
Mark Rotteveel的答案几乎是正确的,并且再次举例说明该类中存在的混淆可能性(听起来相似的方法名称,但偏离了直观的民用用法)。正确的代码需要另一个字段:WeekFields
LocalDate date = LocalDate.now();
TemporalField woy = WeekFields.of(Locale.getDefault()).weekOfWeekBasedYear();
int weekNumber = date.get(woy);
另请参阅有关SO-post的类似辩论,特别是关于@kleopatra答案的讨论和评论。