获取本地日期的周数 (Java 8)

2022-09-01 00:42:32

我正在尝试获取完整本地日期的周数,格式为:

dd.MM.yyy

我没有在Java 8 Date API中找到返回周数的函数,并且我试图创建一个算法,但它不起作用。


答案 1

一个小小的警告。我还没有测试过这个,但是看看WeekFieldsLocalDate.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());

答案 2

Mark Rotteveel的答案几乎是正确的,并且再次举例说明该类中存在的混淆可能性(听起来相似的方法名称,但偏离了直观的民用用法)。正确的代码需要另一个字段:WeekFields

LocalDate date = LocalDate.now();
TemporalField woy = WeekFields.of(Locale.getDefault()).weekOfWeekBasedYear(); 
int weekNumber = date.get(woy);

另请参阅有关SO-post的类似辩论,特别是关于@kleopatra答案的讨论和评论。


推荐