我正在尝试使用以下格式获取完整LocalDate的周数:
dd.MM.yyy
我还没有在Java 8 Date API中找到一个返回Week Number的函数,我试图创建一个算法,但它没有用。
答案 0 :(得分:38)
一个小警告。我还没有对此进行测试,但查看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());
答案 1 :(得分:38)
Mark Rotteveel的答案几乎是正确的一个例子,类WeekFields
中存在一种混淆潜力(类似的声音方法名称,但偏离直觉的民事用法)。正确的代码需要另一个字段:
LocalDate date = LocalDate.now();
TemporalField woy = WeekFields.of(Locale.getDefault()).weekOfWeekBasedYear();
int weekNumber = date.get(woy);
另见关于SO-post的类似辩论,特别是有关@kleopatra答案的讨论和评论。