【问题标题】:converting form Julian date to gregorian date in python在python中将表格儒略日期转换为公历日期
【发布时间】:2018-04-04 22:57:32
【问题描述】:

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

【问题讨论】:

  • @ndmeiri 这似乎是朱利安日期的“自公元 1 年以来的天数”含义,而不是“自今年年初以来的“年 * 1000 + 天”含义,因此该问题及其答案不会t 帮助。
  • 为了清楚起见,您选择的数字转换为公元前 2698 年 10 月 6 日星期五。这符合您的预期吗?
  • @Robᵩ 我怀疑他的意思是 2016 年 10 月 21 日。天文学家并不是唯一使用 JDN 的人。

标签: python python-3.x


【解决方案1】:

术语“儒略日期”有两种不同的含义,并且每种含义都有不同的变化。

我认为您正在寻找“自纪元以来的天数”的含义,并使用 1 Jan 1 CE 纪元,而不是更常见的天文学家纪元 4713 BCE 或 any of the other alternatives。你可以很容易地调整它。

>>> datetime.date(1, 1, 1) + datetime.timedelta(days=736257)
datetime.date(2016, 10, 21)

仅此而已。 (这就是首先使用朱利安日期的意义所在。)


请注意,this is the same format Python datetime is already using 背后的 datedatetime 类型,除了 Python 使用午夜 UTC 而不是当地中午。如果这就是你想要的,那就更简单了:

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

【讨论】:

  • 感谢 abarnert,我如何将公历日期转换回儒略日期?
  • 所有选项都在我链接的文档中。您可以使用 toordinal 来获得 Python 定义,您可以减去 date(1,1,1) 以获得 timedelta 并从中提取日期以获得其他定义,等等。
  • 谢谢,我用的是序号。 >>>从日期时间导入日期时间>>> datetime.strptime("2016-10-20", "%Y-%m-%d").toordinal()
猜你喜欢
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多