Python 将日期转换为小时

Python 将日期转换为小时,python,datetime,hour,Python,Datetime,Hour,我想找出两个日期之间的时差,然后比较以小时为单位的时差。像这样的, StartTime=2011-03-1015:45:48 结束时间=2011-03-1018:04:00 然后找出两者的区别, 时差=绝对值(开始时间-结束时间) 然后我需要比较结果如下:, 如果时差>6小时 当我使用这个方法时,我得到的结果是时间格式的,我应该如何在python中将时间格式更改为小时 谢谢,假设您有两个日期和时间作为datetime对象(请参阅): 从另一个datetime中减去一个timedelta对象,可

我想找出两个日期之间的时差,然后比较以小时为单位的时差。像这样的,

StartTime=2011-03-1015:45:48 结束时间=2011-03-1018:04:00

然后找出两者的区别, 时差=绝对值(开始时间-结束时间) 然后我需要比较结果如下:, 如果时差>6小时

当我使用这个方法时,我得到的结果是时间格式的,我应该如何在python中将时间格式更改为小时


谢谢,

假设您有两个日期和时间作为
datetime
对象(请参阅):

从另一个
datetime
中减去一个
timedelta
对象,可以使用
abs
确保时差为正值:

>>> start_time - end_time
datetime.timedelta(-1, 78108)
>>> abs(start_time - end_time)
datetime.timedelta(0, 8292)
现在,要将时间差的秒数转换为小时,只需除以3600:

>>> hours_difference = abs(start_time - end_time).total_seconds() / 3600.0
>>> hours_difference
2.3033333333333332
请注意,
total_seconds()
方法是在Python 2.7中引入的,因此如果您希望在早期版本中使用该方法,则需要从
.days
.seconds
中自己计算

更新:在下面的评论中指出,如果只是与您感兴趣的小时数进行比较,而不是原始值,您可以更轻松地使用:

abs(start_time - end_time) > timedelta(hours=6)

要检查差异是否超过6小时,您只需执行
abs(开始时间-结束时间)>timedelta(小时=6)
@Jochen Ritzel:好的,谢谢-我更新了我的答案,提到了这一点。
abs(start_time - end_time) > timedelta(hours=6)