有两个 datetime.datetime 数据
nowTime = datetime.datetime.now()
getFromdatabaseTime = dbTask.get('RecordTime')
如果: TimeResult = (nowTime - getFromdatabaseTime).seconds 可以得到一个数值,不过似乎不准的一个什么玩意。。。(汗)
鉴于印象中以前做过 datetime.timedelta 的计算,似乎 datetime.timedelta 的方法比较容易写,直观又方便
但看了一下文档,似乎又没提到 datetime.timedelta 和 datetime.datetime 的互转。
datetime.datetime 要转成 datetime.timedelta ? 这个应该怎么转?
反过来 datetime.timedelta 要转成 datetime.datetime ?
如果大哥们硬要把 datetime.datetime 以拆元组里面的值,分解写计算过程出结果,这就离谱了(笑,逃~)
1
raymanr 2020-10-20 19:54:09 +08:00 2
datetime.datetime 是具体时间的数据类型
datetime.timedelta 是代表时间差的数据类型 我不清楚 datetime 怎么转换 timedelta, 会出什么问题 不过可以告诉你是 datetime - datetime 就会得到 timedelta, 然后 total_seconds / 3600 就是小时了 delta 是数学中常用来表示差值的希腊字符 |
2
Acoffice 2020-10-20 20:13:58 +08:00 via Android
你先转或者直接用时间戳减完,再转也是可以的。
|
3
raymanr 2020-10-20 20:46:00 +08:00 2
突然想起来了, timedelta 是由天数和秒数两个数值构成
比如 timedelta(days=1,seconds=22) 你访问的 seconds 属性只会返回秒数部分 22, 这是你代码有问题的地方 所以需要调用 total_seconds() 方法 |
4
qazwsxkevin OP 恍然大悟,total_seconds()
感谢!! |
5
shm7 2020-10-21 12:54:50 +08:00
@qazwsxkevin 这还需要恍然大雾嘛。
官方文档丢给你: https://docs.python.org/3.6/library/datetime.html 直接取 timedelta 的 seconds 属性就行了。 |