Sérialiser et parser une date en Python: formats de strftime/strptime et timestamps

Sérialiser et parser une date en Python: formats de strftime/strptime et timestamps

Cet article a été repris par notre rédaction en hommage au site sametmax.com et ce qu’il a apporté à la communauté python

Ça fait 10 ans que j’en fais, et je ne me souviens jamais des lettres à utiliser pour les formats. Pourtant j’utilise tout le temps le même format: celui de MySQL et JSON par défaut, avec en plus les microsecondes, car l’ordre alphanumérique de ce format est le même que l’ordre chronologique, ce qui rend son traitement facile.

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.

sam artois

A propos de l'auteur

Samuel Artois est un développeur Python passionné d'automatisation et de marketing. Depuis plusieurs années, il a développé une expertise solide dans ces domaines et a su mettre ses compétences en pratique sur de nombreux projets.

Laisser un commentaire