没有任何直接的方法可以使用 Java Time API 查询该信息,但您可以计算它。
public static void main(String[] args) {
long ordinal = LocalDate.now().toEpochDay() + (146097 * 5L) - (31L * 365L + 7L);
System.out.println(ordinal);
}
Run Code Online (Sandbox Code Playgroud)
2016 年 4 月 19 日今天运行,它输出736073,与 Python 的输出一致。
从 a 开始LocalDate,您可以获得 Epoch 日toEpochDay()。如果您查看当前的实现,您会发现它实际上计算了自第 0 年以来的总天数,并用常数减去它
static final long DAYS_0000_TO_1970 = (DAYS_PER_CYCLE * 5L) - (30L * 365L + 7L);
Run Code Online (Sandbox Code Playgroud)
其中DAYS_PER_CYCLE = 146097是 400 年周期中的天数。这个常量不是公开的,所以我们不能直接重用它。
从 的 Python 文档中toordinal(),它定义了第 1 年的序数为 1。Java API 上面的演算假设它是第 0 年,因此我们只需要为此进行调整。
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |