2010-06-08 2 views
3

Я хочу, чтобы разобрать временную метку из лог-файла, который был записан с помощьюСинтаксический метка времени с python2.4

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

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

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

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

+1

вы должны изменить название, как некоторые люди могут посчитать это оскорбительным. И я сделал это по этой причине. – Woot4Moo

+0

@ Woot4Moo: Все в порядке. Изменил его еще до того, как я прочитал ваш комментарий. –

+0

сейчас мне любопытно, что это за оригинальное название: P –

ответ

5
>>> 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) 
0

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

1
now = datetime.datetime.now() 
then = datetime.datetime(*time.strptime('20080227034510' ,'%Y%m%d%H%M%S')[0:6]) 
difference = now - then 
0

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

Egenix Download

>>> 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 

 Смежные вопросы

  • Нет связанных вопросов^_^