python中从朱利安日期到公历日期的转换

python中从朱利安日期到公历日期的转换,python,python-3.x,Python,Python 3.x,我有一个朱利安日期:736257,我需要帮助在Python中将它从朱利安日期转换为公历日期。术语“朱利安日期”有两种不同的含义,每个都有不同的变体 我想你是在寻找“从纪元算起的日子”的意思,使用的是公元前1年1月1日的纪元,而不是更常见的天文学家的纪元,即公元前4713年或更早。你可以很容易地调整它 >>> datetime.date(1, 1, 1) + datetime.timedelta(days=736257) datetime.date(2016, 10, 21)

我有一个朱利安日期:736257,我需要帮助在Python中将它从朱利安日期转换为公历日期。

术语“朱利安日期”有两种不同的含义,每个都有不同的变体

我想你是在寻找“从纪元算起的日子”的意思,使用的是公元前1年1月1日的纪元,而不是更常见的天文学家的纪元,即公元前4713年或更早。你可以很容易地调整它

>>> datetime.date(1, 1, 1) + datetime.timedelta(days=736257)
datetime.date(2016, 10, 21)
就这些。(这就是使用朱利安日期的第一点。)


请注意,在封面下,对于its和
datetime
类型,Python使用午夜UTC而不是本地中午。如果这就是你想要的,那就更容易了:

>>> datetime.date.fromordinal(736257)
datetime.date(2016, 10, 20, 0, 0)

@ndmeiri的可能副本这似乎是朱利安日期的“自公元前1天起的天数”意思,而不是“自今年年初起的1000多天的年份”意思,所以这个问题及其答案不会有帮助。只是要明确一点,你选择的数字转换为公元前2698年10月6日星期五。这符合你的预期吗?@Robᵩ 我猜他指的是2016年10月21日。天文学家不是唯一使用JDN的人。谢谢abarnert,我如何将公历日期转换回朱利安日期?所有选项都在我链接的文档中。您可以使用
toordinal
来获得Python定义,您可以减去
date(1,1,1)
来获得
timedelta
并从中提取天数来获得其他定义,等等。谢谢,我使用toordinal从datetime导入datetime>>>datetime.strTime(“2016-10-20,%Y-%m-%d”).toordinal()