为什么timedelta在处理日期时间时的工作方式不同

时间:2018-06-13 17:16:42

标签: python python-3.x datetime

我今天有这个功能。我想知道为什么会发生以下结果。

today = datetime.datetime.now()

显示为2018-06-13 17:13:42.372469

today = datetime.datetime.now().date()

显示为2018-06-13

但是当我尝试使用timedelta时:

today = datetime.datetime.now().date() + datetime.timedelta(hours=-8)
它显示2018-06-12。一整天回来而不是8小时(应该显示2018-06-13 9:13:42)

有人可以解释一下为什么会发生这种情况并让timedelta正确地回到8小时而不是一天吗?

1 个答案:

答案 0 :(得分:3)

通过将时间戳减少到仅限日期,您已有效地将时间设置为00:00:00 - 从2018-06-13午夜减去8小时正确结果为2018-06-12。

为什么不使用正确的时间戳进行计算,只在执行后将它们转换为日期?