horodatage avec python2.4 Parsing
-
24-10-2019 - |
Question
Je veux analyser un horodatage à partir d'un fichier journal qui a été écrit par
datetime.datetime.now().strftime('%Y%m%d%H%M%S')
puis calculer le nombre de secondes qui se sont écoulées depuis cet horodatage.
Je sais que je pouvais le faire avec datetime.datetime.strptime
pour récupérer un objet datetime
puis calculer une timedelta. Le problème est, la fonction strptime
a été introduit avec Python 2.5 et je suis en utilisant Python2.4.4 (une mise à niveau n'est pas possible dans mon contexte).
De toute façon facile de le faire?
La solution
>>> ts = time.mktime(time.strptime('20040412234551', '%Y%m%d%H%M%S'))
>>> ts
1081809951.0
>>> datetime.datetime.fromtimestamp(ts)
datetime.datetime(2004, 4, 12, 23, 45, 51)
Autres conseils
now = datetime.datetime.now()
then = datetime.datetime(*time.strptime('20080227034510' ,'%Y%m%d%H%M%S')[0:6])
difference = now - then
Il y a un strptime
fonction dans le module time
en python 2.4 déjà. Il faudrait convertir en un objet datetime par exemple par le détour de l'horodatage unix, ne sais pas s'il y a une meilleure façon.
Il y a aussi mx.DateTime qui est maintenant libre d'utiliser et un peu plus facile à traiter et plus flexible que Python construit dans datetime module bien à peu près tout. Travaux en python 2.3+ Non * et. [0: 6] manigances requises
>>> import mx.DateTime as dt
>>> then = dt.DateTimeFrom(dt.strptime('20040412234551', '%Y%m%d%H%M%S'))
>>> delta = dt.now() - then
>>> delta
<DateTimeDelta object for '2247:13:09:22.31' at 2ab37d666b58>
>>> delta.hours
53941.156198977762
>>> delta.days
2247.5481749574069