【问题标题】:Convert calendar date to julian date - python将日历日期转换为朱利安日期 - python
【发布时间】:2021-11-05 05:25:08
【问题描述】:

我正在尝试像这样将日历日期:'2018-08-07' 转换为儒略历日,就像这样 '219'。我已经尝试了很长时间,似乎没有想法。 朱利安日日历是我正在使用的日历: https://landweb.modaps.eosdis.nasa.gov/browse/calendar.html

这是我目前所拥有的:

from datetime import date
import datetime
from PyAstronomy import pyasl

df = datetime.datetime(2018, 8, 7, 12)
print(df)
jul = pyasl.jdcnv(df)
print(jul)

【问题讨论】:

  • pyasl.jdcnv 用于天文学家使用的真正儒略日期。不幸的是,这个术语在商业中也用于表示一年中的某一天,这是您感兴趣的。

标签: python julian-date


【解决方案1】:

您可以为此使用strftime(有关要使用的指令的说明,请参阅this):

jul = df.strftime('%j')
>>> jul
'219'

【讨论】:

    【解决方案2】:
    def date_2_julian_string (date):
        return str(date.strftime('%y')) + date.strftime('%j')
    

    【讨论】:

    • 与三年前的@sacuL's approach 相比,这种表达方式有什么好处?
    • 好处是完整的儒略日期格式:str(date.strftime('%y')) +
    • 前一个答案,你对朱利安日期不熟悉
    • 这只是重复代码。您能否用语言解释为什么 %y 可能比%j 更可取?您应该假设未来的读者不会理解这种区别,并且会从额外的解释中受益。
    • 没有人说 %y 可能比 %j 更可取。在浪费他人时间之前,请确保您已实际阅读(如果您无法阅读,请运行它)代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 2021-01-21
    • 2020-09-29
    • 2015-09-17
    • 1970-01-01
    相关资源
    最近更新 更多