2010-03-11 13 views

cevap

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

Bu nasıl SilentGhost cevabı daha basittir? – GreenMatt

+1

@GreenMatt: Sayıların bir dizeye eklenmesi ve ardından bu dizenin ayrıştırılması dahil değildir. –

+2

Bu gerçekten Mino içindi; Sanırım yorumda "@Mino" yazmalıydım, üzgünüm. Bu yöntemin sayıları bir dizeye dönüştürmeyi gerektirmediği doğrudur; Ancak, benim tecrübemde en azından eşit bir şekilde bir dizeyle başlamış olursunuz. Dahası, iki çağrı ve bir aritematik işlem, tek bir çağrı IMO'sundan daha karmaşıktır. (Verilen, aramaların sayısı gerekli tüm dönüşümlere bağlı olacaktır.) – GreenMatt

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

toordinal() ve fromordinal() fonksiyonlar kullanılabilir:

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