2012-02-29 11 views

Respuesta

36

Usted puede hacer eso con datetime.strptime()

Ejemplo:

>>> from datetime import datetime 
>>> datetime.strptime('2012-02-10' , '%Y-%m-%d') 
datetime.datetime(2012, 2, 10, 0, 0) 
>>> _.isoweekday() 
5 

puede encontrar la mesa con toda la strptime Directiva here.


que hay que sumar 2 días si .isweekday() == 6, puede utilizar timedelta():

>>> import datetime 
>>> date = datetime.datetime.strptime('2012-02-11' , '%Y-%m-%d') 
>>> if date.isoweekday() == 6: 
...  date += datetime.timedelta(days=2) 
... 
>>> date 
datetime.datetime(2012, 2, 13, 0, 0) 
>>> date.strftime('%Y-%m-%d') # if you want a string again 
'2012-02-13' 
+0

@ user1072627: Y .. hicieron funcionó? –

+0

Eso fue exactamente lo que hice: if datetime.strptime (a, "% Y-% m-% d"). Isoweekday() == 6: PONTO_MOVIMENTO = a –

+0

Solo una pregunta más ... ¿cómo puedo agregar días a mi cita? Por ejemplo, si isoweekdday() == 6, necesito incrementar la fecha en 2 días. ¿Tienes idea de cómo hago eso? ¡Gracias de nuevo! –

5
from datetime import datetime 

a = datetime.strptime(f, "%Y-%m-%d") 
3
>>> from datetime import datetime 
>>> year, month, day = map(int, my_date.split('-')) 
>>> date_object = datetime(year, month, day) 
+1

Usé algo como esto cuando necesitaba un objeto datetime.date, NO un objeto datetime.datetime. Desafortunadamente, datetime.date no tiene un método strptime(). – CraigO

40

Si bien parece que la pregunta era respondidas de acuerdo con la solicitud del OP, ninguna de las respuestas ofrece una buena forma de obtener un objeto datetime.date en lugar de un datetime.datetime. Así que para aquellos que buscan y encuentran este hilo:

datetime.date no tiene .strptime método; utilice el que está en datetime.datetime y luego llame al .date() para recibir el objeto datetime.date.

así:

>>> from datetime import datetime 
>>> datetime.strptime('2014-12-04', '%Y-%m-%d').date() 
datetime.date(2014, 12, 4) 
+0

Esta es la verdadera respuesta – Nyxynyx

Cuestiones relacionadas