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