我有一個字符串爲Julian日期像"16152"
意義152'nd 2016或"15234"
天意義的2015年Python3轉換Julian日期,以基準日
234'th一天,我怎樣才能將這些Julian日期一樣格式化20/05/2016
使用Python 3標準庫?
我可以像這樣得到2016年:date = 20 + julian[0:1]
,其中julian
是包含Julian日期的字符串,但是我如何根據1月1日計算其餘值?
我有一個字符串爲Julian日期像"16152"
意義152'nd 2016或"15234"
天意義的2015年Python3轉換Julian日期,以基準日
234'th一天,我怎樣才能將這些Julian日期一樣格式化20/05/2016
使用Python 3標準庫?
我可以像這樣得到2016年:date = 20 + julian[0:1]
,其中julian
是包含Julian日期的字符串,但是我如何根據1月1日計算其餘值?
的.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'
嗯,首先,創建一個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
格式字符串here
如果您在對象上調用'str'函數是不必要的重新印刷它。 'print'函數會自己調用'__str__'方法。例如:'print(datetime.now())'就足夠了 – Leva7
無關,但[Julian日](https://en.wikipedia.org/wiki/Julian_day)是另一種動物:*朱利安日是主要由天文學家使用的朱利安時期開始以來的連續天數* –
反向操作:[從python中的字符串日期中提取年份和Julian日](http://stackoverflow.com/a/25831416/4279) – jfs