gpt4 book ai didi

Java 等同于 Python 的 toordinal()?

转载 作者:太空狗 更新时间:2023-10-30 02:57:35 25 4
gpt4 key购买 nike

在 Java 中复制 datetime.datetime.now().toordinal() 的最佳方法是什么?我尝试使用 epoch,但结果相去甚远。

最佳答案

没有任何直接的方法可以使用 Java Time API 查询该信息,但您可以计算它。

public static void main(String[] args) {
long ordinal = LocalDate.now().toEpochDay() + (146097 * 5L) - (31L * 365L + 7L);

System.out.println(ordinal);
}

今天运行,2016 年 4 月 19 日,它输出 736073,这与 Python 的输出一致。

来自LocalDate , 你可以用 toEpochDay() 得到纪元日.如果你看看inside the current implementation ,你会发现它实际上计算了从 0 年开始的总天数,并用常数减去它

static final long DAYS_0000_TO_1970 = (DAYS_PER_CYCLE * 5L) - (30L * 365L + 7L);

其中 DAYS_PER_CYCLE = 146097 是 400 年周期中的天数。该常量不公开,因此我们不能直接重用它。

来自 toordinal() 的 Python 文档,它定义第 1 年的序数为 1。Java API 上面的演算假定它是第 0 年,所以我们只需要为此进行调整。

关于Java 等同于 Python 的 toordinal()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36721109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com