Разбор временной метки с Python2.4 - PullRequest
3 голосов
/ 08 июня 2010

Я хочу проанализировать отметку времени из файла журнала, который был записан с помощью

datetime.datetime.now().strftime('%Y%m%d%H%M%S')

, а затем вычислить количество секунд, прошедших с этой отметки времени.

Я знаю, что мог бы сделать это с datetime.datetime.strptime, чтобы получить обратно datetime объект и затем вычислить временную дельту.Проблема в том, что функция strptime была введена в Python 2.5, и я использую Python2.4.4 (в моем контексте обновление невозможно).

Есть ли простой способ сделать это?

Ответы [ 4 ]

5 голосов
/ 08 июня 2010
>>> 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)
1 голос
/ 08 июня 2010
now = datetime.datetime.now()
then = datetime.datetime(*time.strptime('20080227034510' ,'%Y%m%d%H%M%S')[0:6])
difference = now - then
0 голосов
/ 08 июня 2010

Существует также mx.DateTime, который теперь можно использовать бесплатно, и с ним гораздо проще работать, и он более гибкий, чем встроенный в Python модуль datetime, для практически всего.Работает на python 2.3+ Требуются не * и [0: 6] махинации.

Egenix Скачать

>>> 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
0 голосов
/ 08 июня 2010

В модуле time в Python 2.4 уже есть функция strptime. Вам придется преобразовать это в объект datetime, например, через обход метки времени Unix, не знаю, есть ли лучший способ.

...