Python问题:迄今为止的年份和年份?

时间:2010-03-11 18:21:43

标签: python date julian-date

我有一年的价值和一年中的一天,并希望转换为日期(日/月/年)。

提前致谢。 :)

6 个答案:

答案 0 :(得分:63)

datetime.datetime(year, 1, 1) + datetime.timedelta(days - 1)

答案 1 :(得分:22)

>>> import datetime
>>> datetime.datetime.strptime('2010 120', '%Y %j')
datetime.datetime(2010, 4, 30, 0, 0)
>>> _.strftime('%d/%m/%Y')
'30/04/2010'

答案 2 :(得分:7)

可以使用date类的toordinal()fromordinal()函数:

from datetime import date
date.fromordinal(date(year, 1, 1).toordinal() + days - 1)

答案 3 :(得分:2)

由于这几天很常见,pandas 选项,使用带有指定单位和来源的 pd.to_datetime

import pandas as pd

day, year = 21, 2021

print(pd.to_datetime(day-1, unit='D', origin=str(year)))
# 2021-01-21 00:00:00

答案 4 :(得分:0)

2020年版:

import mx.DateTime as dt 
date = dt.DateTime(yyyy,mm,dd) + dt.DateTimeDeltaFromDays(doy-1)

因此,假设您知道年份(例如2020年)和doy(一年中的某天,例如234年),那么:

date = dt.DateTime(2020,1,1) + dt.DateTimeFromDays(233) 

返回

2020-08-21 00:00:00.00

答案 5 :(得分:-1)

>>>import datetime
>>>year = int(input())
>>>month = int(input())
>>>day = int(input())
data = datetime.datetime(year,month,day)
daynew = data.toordinal()
yearstart = datetime.datetime(year,1,1)
day_yearstart = yearstart.toordinal()
print ((daynew-day_yearstart)+1)