J'ai cette chaîne:
'2012-02-10' # (year-month-day)
et j'ai besoin que ce soit comme type de date pour que j'utilise la fonction de date isoweekday()
.
Est-ce que quelqu'un sait comment convertir cette chaîne en une date?
Vous pouvez le faire avec datetime.strptime()
Exemple:
>>> from datetime import datetime
>>> datetime.strptime('2012-02-10' , '%Y-%m-%d')
datetime.datetime(2012, 2, 10, 0, 0)
>>> _.isoweekday()
5
Vous pouvez trouver le tableau avec toutes les directives strptime
ici .
Pour incrémenter de 2 jours si .isweekday() == 6
, vous pouvez utiliser 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'
Bien qu'il semble que la question ait été répondue conformément à la demande du PO, aucune des réponses ne donne un bon moyen d'obtenir un objet datetime.date
Au lieu d'un datetime.datetime
. Donc, pour ceux qui recherchent et trouvent ce fil:
datetime.date
N'a pas de méthode .strptime
; utilisez plutôt celui sur datetime.datetime
puis appelez .date()
dessus pour recevoir l'objet datetime.date
.
Ainsi:
>>> from datetime import datetime
>>> datetime.strptime('2014-12-04', '%Y-%m-%d').date()
datetime.date(2014, 12, 4)
from datetime import datetime
a = datetime.strptime(f, "%Y-%m-%d")
>>> from datetime import datetime
>>> year, month, day = map(int, my_date.split('-'))
>>> date_object = datetime(year, month, day)
Utilisation datetime.datetime.strptime
:
>>> import datetime
>>> date = datetime.datetime.strptime('2012-02-10', '%Y-%m-%d')
>>> date.isoweekday()
5