我正在使用Python,并希望计算两个时间之间的差异。
实际上,我有一个场景需要计算登录和注销时间之间的差异,例如在组织中,工作时间有一定的限制,所以如果用户在早上 9:00 AM
登录并在晚上 6:00 PM
注销,我们需要计算他在办公室停留的时间(在当前情况下为9小时
),但我想在Python中完成这个操作,那么能否请有经验的开发者告诉我如何计算登录和注销时间之间的差异?
我正在使用Python,并希望计算两个时间之间的差异。
实际上,我有一个场景需要计算登录和注销时间之间的差异,例如在组织中,工作时间有一定的限制,所以如果用户在早上 9:00 AM
登录并在晚上 6:00 PM
注销,我们需要计算他在办公室停留的时间(在当前情况下为9小时
),但我想在Python中完成这个操作,那么能否请有经验的开发者告诉我如何计算登录和注销时间之间的差异?
>>> start = datetime.datetime(year=2012, month=2, day=25, hour=9)
>>> end = datetime.datetime(year=2012, month=2, day=25, hour=18)
>>> diff = end - start
>>> diff
datetime.timedelta(0, 32400)
>>> diff.total_seconds()
32400
>>> diff.total_seconds() / 60 / 60
9
>>>
str(dif)
代替 diff.seconds/60/60 来获得更好的格式。 - Ionut Hulubdiff.total_seconds()
。 - John La Rooy使用divmod完成此任务。
>>> start = datetime.datetime.utcnow()
>>> end = datetime.datetime.utcnow()
>>> divmod(end - start, 60)
(0, 2.454) # (minutes, seconds)
> import datetime
> print datetime.datetime.now() - datetime.datetime(2013, 1, 1)
55 days, 14:11:06.749378
返回的对象是一个timedelta
。但是,差异当然是在datetime
对象之间计算出来的。
在我看来,@Fabian的回答可能是最好的。但我们是否把它弄得过于困难了?
你需要按天、月、年来计算吗?
如果您正在生成此内容,直接使用时间戳表示会更容易。
当用户登录时:
user_login_time = time.time()
time_difference = time.time() - user_login_time