将 6 位儒略日期转换为标准日期

Converting 6-digit Julian date to std date

我有来自 DB table 的 6 位 Julian 日期,我正在尝试将它们转换为标准日期。由于格式不正确,我收到错误消息。 fmt = '%y%m%j'

这是我写的函数:

import datetime
def jdtodatestd (jdate):
    fmt = '%y%m%j'
    datestd = datetime.datetime.strptime(jdate, fmt).date()
    return(datestd)
x = jdtodatestd('122105')
print(x)

在上述儒略日期“122105”中:
1是世纪码
22 是年份
105 是一年中的第 105 天。

我得到的结果是 2012-04-14,但预期结果是 2022-04-15

jdate = str(19 + int(jdate[0])) + jdate[1:] 插入您的 Python 函数并将格式更改为 %Y%j

import datetime
def jdtodatestd (jdate):
    jdate = str(19 + int(jdate[0])) + jdate[1:]
    fmt = '%Y%j'
    datestd = datetime.datetime.strptime(jdate, fmt).date()
    return(datestd)
x = jdtodatestd('122105')

print(x)
# 2022-04-15