我正在将PHP程序转换为Python。显然MySQLdb返回MySQL时间字段,因为时间增量从午夜偏移。因此,包含文字“08:00:00”(上午8:00)的数据库字段将返回28,800秒。我发现其他一些帖子确认了这种行为,但找不到能够帮助我获得所需内容的代码示例。
我需要读取记录事件的日期和时间,并确定已经过了多长时间:
event_date = mysql_result[0] # datetime object
event_time = mysql_result[1] # timedelta object
now = datetime.now() # datetime object
elapsed_minutes = ??? # need integer
我在docs.python.org上阅读了有关datetime的冗长文档,但是在获取datetime和timedelta值时,与当前时间相比,并且生成经过的分钟数(或秒数)是不成功的。整数。
我不是说答案不在那里或在另一个堆栈溢出帖子 - 只是我自己完全找不到并实现它是不成功的。有人可以伸出援手吗?
感谢。
答案 0 :(得分:2)
In [82]: import datetime as dt
In [85]: now = dt.datetime.now()
In [129]: event_date = dt.date(2012,10,22)
In [155]: event_date = dt.datetime(event_date.year, event_date.month, event_date.day)
In [130]: event_time = dt.timedelta(seconds = 28800)
In [131]: event = event_date + event_time
In [132]: elapsed = now - event
Out[132]: datetime.timedelta(0, 35008, 781476)
In [133]: elapsed.total_seconds()
Out[133]: 35008.781476
In [134]: elapsed.total_seconds() // 60
Out[134]: 583.0
或者,在Python2.6中,它没有total_seconds
方法:
In [149]: (elapsed.days*24*60*60+elapsed.seconds+elapsed.microseconds/1e6)//60
Out[149]: 583.0