python - 为什么两个日期时间对象的差异如此之大?
问题描述
datetime1 = '2020-08-19 10:13:19'
datetime2 = '2020-08-19 19:00:00'
diff = datetime1 - datetime2
diff 是一个 timedelta 对象,具有:
diff.days = -1
diff.seconds = 54766 = 15.22 hours
两个日期时间之间只有大约 9 小时的差异。为什么显示天数是“1”和 15.22 小时?如何理解两个日期时间的差异?
解决方案
如果您从较晚的日期时间中减去较早的日期时间,您会得到一个正的时间增量,正如人们所期望的那样。
反过来,你会得到一个不寻常格式的负时间延迟。
但是当你计算时-1 day + 15 hours = -24 hours + 15 hours = -9 hours
,结果是正确的。
当然,手动做这个计算不是我们想要的。
因此,要么避免从较早的日期时间中减去较晚的日期时间:
# to get an absolute timedelta
if datetime2 > datetime1:
print(datetime2 - datetime1)
else:
print(datetime1 - datetime2)
或使用.total_seconds()
:
print((datetime1 - datetime2).total_seconds())
-31601.0
print((datetime2 - datetime1).total_seconds())
31601.0
推荐阅读
- javascript - 工具提示模式似乎不适用于自定义 HTML 工具提示
- selenium - Jenkins testng 插件显示 xml 解析错误(无法解析 XML:内容中不允许字符 ]]>)
- windows - 如何构建 WDDM 驱动程序 vidpn
- qt - 如何访问包含 QML StackView?
- java - 使用 AsyncTask 将数据写入数据库是否更好?
- logstash - Logstash - 拆分转义字符“\”不起作用
- javascript - 如何不允许通过html输入文件上传视频上传?
- android - 在 Notification.Builder 中不推荐使用 setDefaults
- java - 如何在eclipse平台上获取keyEvent
- angular - 无法从代码 Angular4 设置 Switchery 的 SetPosition 的值