2

鉴于 LocalDate 我想转换为纪元以来的周数

一种方法是:

LocalDate date = datePicker.getValue(); // input from your date picker
Locale locale = Locale.US;
int weekOfYear = date.get(WeekFields.of(locale).weekOfWeekBasedYear());

And X = find weeks since Epoch to prevYear

And then result = X + weekOfYear

尽管我们可以通过某种方式找到“自纪元以来的周数”,但是否有使用 Java 8 找到它的干净解决方案?

更新:即使上述解决方案也无法工作,因为一周(总是从周日开始)可以跨越两年

4

2 回答 2

4
于 2016-08-29T21:00:23.253 回答
2

自 epoch for a 以来,有一种方法可以持续几毫秒Date

long timeInMillis = date.getTime();

显然一周有 604800000 毫秒。所以我想你可以去

long weeksSinceEpoch = date.getTime() / 604800000;

我认为您实际上可能需要将 1 添加到您的最终值,因为 Java 会截断longs。

于 2016-08-16T17:52:12.990 回答