Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python的Java等价物';s toordinal()?_Java_Python_Datetime_Epoch_Ordinal - Fatal编程技术网

Python的Java等价物';s toordinal()?

Python的Java等价物';s toordinal()?,java,python,datetime,epoch,ordinal,Java,Python,Datetime,Epoch,Ordinal,在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); Syst

在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的输出一致

从一开始,你就可以得到大纪元日。如果你看一看,你会发现它实际上计算了自第0年以来的总天数,然后用常数减去

static final long DAYS_0000_TO_1970 = (DAYS_PER_CYCLE * 5L) - (30L * 365L + 7L);
其中,
DAYS\u PER\u CYCLE=146097
是400年周期中的天数。这个常量不是公共的,所以我们不能直接重用它


根据的Python文档,它将第1年定义为序号为1。Java API上面的演算假设现在是第0年,所以我们只需要对此进行调整。

您能发布您尝试过的内容和结果吗?以下是;如果确实需要这种行为,您可能只想将其移植到Java。