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

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

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

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

Любой простой способ сделать это?

3
Johannes Charra 8 Июн 2010 в 17:40

4 ответа

Лучший ответ
>>> 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)
5
SilentGhost 8 Июн 2010 в 13:48

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

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
Khorkrak 8 Июн 2010 в 16:58
now = datetime.datetime.now()
then = datetime.datetime(*time.strptime('20080227034510' ,'%Y%m%d%H%M%S')[0:6])
difference = now - then
1
Matthew Flaschen 8 Июн 2010 в 13:53

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

0
Marian 8 Июн 2010 в 13:46