我想从已通过写入的日志文件中解析时间戳
datetime.datetime.now().strftime('%Y%m%d%H%M%S')
然后计算自此时间戳以来经过的秒数。
我知道我可以用它datetime.datetime.strptime
来取回一个datetime
对象,然后计算一个时间增量。问题是,该strptime
功能已在 Python 2.5 中引入,而我正在使用 Python2.4.4(在我的上下文中无法升级)。
有什么简单的方法可以做到这一点?
我想从已通过写入的日志文件中解析时间戳
datetime.datetime.now().strftime('%Y%m%d%H%M%S')
然后计算自此时间戳以来经过的秒数。
我知道我可以用它datetime.datetime.strptime
来取回一个datetime
对象,然后计算一个时间增量。问题是,该strptime
功能已在 Python 2.5 中引入,而我正在使用 Python2.4.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)
now = datetime.datetime.now()
then = datetime.datetime(*time.strptime('20080227034510' ,'%Y%m%d%H%M%S')[0:6])
difference = now - then
python 2.4 的模块中已经有一个strptime
函数。time
您必须将其转换为 datetime 对象,例如通过 unix 时间戳的绕行,不知道是否有更好的方法。
还有 mx.DateTime 现在可以免费使用,它比 Python 内置的 datetime 模块更容易处理和更灵活,几乎适用于所有事情。适用于 python 2.3+ 不需要 * 和 [0:6] 恶作剧。
>>> 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