2010-03-11 31 views

Respuesta

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

¿Cómo es esto más simple que la respuesta de SilentGhost? – GreenMatt

+1

@GreenMatt: No implica poner los números en una cadena y luego analizar esa cadena. –

+2

Esto fue realmente para Mino; Creo que debería haber puesto "@Mino" en el comentario, lo siento. Es cierto que este método no requiere la conversión de números a una cadena; sin embargo, en mi experiencia, al menos es igualmente probable que empiece con una cadena. Más al punto, dos llamadas y una operación aritmética son más complicadas que una sola llamada IMO. (Por supuesto, el número de llamadas dependerá de las conversiones necesarias). – 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

Los toordinal() y fromordinal() funciones de la clase date se podrían utilizar:

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