2010-03-11 16 views

Répondre

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

Comment est-ce plus simple que la réponse de SilentGhost? – GreenMatt

+1

@ GreenMatt: Cela n'implique pas de mettre les nombres dans une chaîne, puis d'analyser cette chaîne. –

+2

C'était vraiment destiné à Mino; Je suppose que j'aurais dû mettre "@Mino" dans le commentaire, désolé. Il est vrai que cette méthode ne nécessite pas de convertir des nombres en une chaîne; Cependant, selon mon expérience, vous êtes au moins aussi susceptible de commencer avec une chaîne. Plus précisément, deux appels et une opération arithématique sont plus compliqués qu'un seul appel IMO. (Certes, le nombre d'appels dépendra des conversions nécessaires.) – 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

Les fonctions de toordinal() et fromordinal() le date pourraient être utilisés:

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