Je le met ici pour l’avoir toujours sous la main. Marre de chercher si truc est en minuscule, et machin en majuscule. Je me fais baiser à chaque fois.
Sérialiser une date pour avoir: année, mois, jour, heure, minute, seconde, microseconde :
>>> import datetime
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
>>> '2012-07-22 16:19:00.539570'
A l’inverse, parser une date:
>>> datetime.datetime.strptime('2012-07-22 16:19:00.539570', '%Y-%m-%d %H:%M:%S.%f')
>>> datetime.datetime(2012, 7, 22, 16, 19, 0, 539570)
Tous les formats sont listés ici.
Et tant qu’on y est, le snippet de manipulation de timestamp (qui pour le fun, n’est pas par défaut dans le module datetime):
>>> import calendar
>>> calendar.timegm(d.utctimetuple()) # d'un objet date vers un timestamp
>>> 1342973940
>>> datetime.datetime.fromtimestamp(1342973940) # et l'inverse
>>> datetime.datetime(2012, 7, 22, 18, 19)
Le timestamp est un timestamp basé sur une epoch of 1970 et un format POSIX, avec toute ce que ça implique, et notamment le fait qu’on perd les microsecondes.
]]>