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?

Était-ce utile?

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

egenix Télécharger

>>> 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top