pme*_*pme 3 java datetime week-number java-time java-date
我只找到了Joda Time的解决方案.
我的解决方案只有在最后一天不在第一周时才有效:
LocalDate.now() // or any other LocalDate
.withDayOfMonth(31)
.withMonth(12)
.get(weekFields.weekOfWeekBasedYear())
Run Code Online (Sandbox Code Playgroud)
那么Java Time中的正确方法是什么(比如Joda Time)?
可以使用java.time.*API 直接获取此信息.
关键的方法是rangeRefinedBy(Temporal)上TemporalField.它允许您获取一个ValueRange对象,该对象提供字段的最小值和最大值,由传入的临时对象细化.
要了解一年中有多少ISO周,请执行以下操作:
LocalDate date = LocalDate.of(2015, 6, 1);
long weeksInYear = IsoFields.WEEK_OF_WEEK_BASED_YEAR.rangeRefinedBy(date).getMaximum();
System.out.println(weeksInYear);
Run Code Online (Sandbox Code Playgroud)
请注意,您传入的日期用于确定答案.因此,当在1月初或12月下旬传递日期时,请确保您了解基于ISO周的日历如何工作,以及日历年和基于周的年份之间的差异.
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |