如何将 Julian 日期转换为标准日期?

新手上路,请多包涵

我有一个字符串作为儒略日期,例如 "16152" 表示 2016 年第 152 天或 "15234" 表示 2015 年第 234 天。

如何使用 Python 3 标准库将这些 Julian 日期转换为类似 20/05/2016 的格式?

我可以这样得到 2016 年: date = 20 + julian[0:1] ,其中 julian 是包含 Julian 日期的字符串,但我如何根据 1 月 1 日计算其余部分?

原文由 abidinberkay 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

.strptime() 方法支持 格式:

 >>> import datetime
>>>
>>> datetime.datetime.strptime('16234', '%y%j').date()
datetime.date(2016, 8, 21)

然后您可以使用 strftime() 重新格式化日期

>>> date = datetime.date(2016, 8, 21)
>>> date.strftime('%d/%m/%Y')
'21/08/2016'

原文由 Brendan Abel 发布,翻译遵循 CC BY-SA 3.0 许可协议

那么,首先,创建一个 datetime 对象(来自模块 datetime

 from datetime import datetime
from datetime import timedelta
julian = ... # Your julian datetime
date = datetime.strptime("1/1/" + jul[:2], "%m/%d/%y")
# Just initializing the start date, which will be January 1st in the year of the Julian date (2 first chars)

现在添加从开始日期算起的天数:

 daysToAdd = int(julian[2:]) # Taking the days and converting to int
date += timedelta(days = daysToAdd - 1)

现在,您可以按原样打印它:

 print(str(date))

或者您可以使用 strftime() 函数。

 print(date.strftime("%d/%m/%y"))

在此处 阅读有关 strftime 格式字符串的更多信息

原文由 Yotam Salmon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题