Python - 计算两个 datetime.time 对象之间的差异

新手上路,请多包涵

我有两个 datetime.time 对象,我想计算它们之间的小时差。例如

a = datetime.time(22,00,00)
b = datetime.time(18,00,00)

我希望能够减去这些,以便它给我值 4。

原文由 user3080600 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 897
2 个回答

要计算差异,您必须将 datetime.time 对象转换为 datetime.datetime 对象。然后当你减去时,你会得到一个 timedelta 对象。为了找出 timedelta 对象有多少小时,您必须找到总秒数并将其除以 3600

 # Create datetime objects for each time (a and b)
dateTimeA = datetime.datetime.combine(datetime.date.today(), a)
dateTimeB = datetime.datetime.combine(datetime.date.today(), b)
# Get the difference between datetimes (as timedelta)
dateTimeDifference = dateTimeA - dateTimeB
# Divide difference in seconds by number of seconds in hour (3600)
dateTimeDifferenceInHours = dateTimeDifference.total_seconds() / 3600

原文由 user3080600 发布,翻译遵循 CC BY-SA 3.0 许可协议

我就是这样做的

a = '2200'
b = '1800'
time1 = datetime.strptime(a,"%H%M") # convert string to time
time2 = datetime.strptime(b,"%H%M")
diff = time1 -time2
diff.total_seconds()/3600    # seconds to hour

输出:4.0

原文由 iAnas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进