2012-09-18 19 views
81

me he convertido con éxito algo de 26 Sep 2012 formato a 26-09-2012 usando:pitón de fecha y hora - ajuste de la hora fija y minutos después de usar strptime para conseguir día, mes, año

datetime.strptime(request.POST['sample_date'],'%d %b %Y')

Sin embargo, no lo creo Saber cómo configurar la hora y los minutos de algo así como a las 11:59. ¿Alguien sabe como hacer esto?

Tenga en cuenta que esta puede ser una fecha futura o aleatoria, no solo la fecha actual.

Respuesta

202

Uso datetime.replace:

from datetime import datetime 
date = datetime.strptime('26 Sep 2012', '%d %b %Y') 
newdate = date.replace(hour=11, minute=59) 
+6

Muy práctico, pero también lo pasa por alto fácilmente. –

+0

¡Gracias por la rápida respuesta! :) ¿Es curioso si hay una forma de hacerlo sin la variable de fecha extra? (Soy un novato de Python) – user1678031

+1

Sí, simplemente haga 'date = datetime.strptime ('26 Sep 2012 ','% d% b% Y '). Replace (hour = 11, minute = 59)'. Utilicé la variable adicional para que la línea no fuera demasiado larga :) – nneonneo

8

datetime.replace() proporcionará las mejores opciones. Además, brinda facilidades para reemplazar día, año y mes.

Supongamos que tenemos un objeto datetime y la fecha se representa como: "2017-05-04"

>>> from datetime import datetime 
>>> date = datetime.strptime('2017-05-04',"%Y-%m-%d") 
>>> print(date) 
2017-05-04 00:00:00 
>>> date = date.replace(minute=59, hour=23, second=59, year=2018, month=6, day=1) 
>>> print(date) 
2018-06-01 23:59:59 
Cuestiones relacionadas