【发布时间】:2019-11-11 10:56:42
【问题描述】:
我正在尝试自动记录我的工作时间,并且需要一种方法来获取开始时间和结束时间之间的持续时间。在我的研究中,我遇到了 this 似乎为我的问题提供了解决方案的问题。
但是,当尝试获取“11:30”和“12:30”之间的持续时间时,datetime.time() 方法返回“00:00:00”,我不知道为什么。
这是我正在使用的代码。
from datetime import datetime, timedelta
from time import strptime
start = strptime("11:30", "%H:%M")
stop = strptime("12:30", "%H:%M")
start_dt = datetime(100, 1, 1, start.tm_hour, start.tm_min)
duration = start_dt + timedelta(hours=stop.tm_hour,
minutes=stop.tm_min,
seconds=0)
print(duration.time())
这是我的预期(期望)输出:
01:00:00
这是我得到的实际输出:
00:00:00
我想知道它是否与我用来获取小时和分钟值的 time.strptime() 方法有关,所以我也尝试了这个:
from datetime import datetime, timedelta
start_dt = datetime(100, 1, 1, 11, 30)
duration = start_dt + timedelta(hours=12,
minutes=30,
seconds=0)
print(duration.time())
输出保持不变。有谁知道为什么?我完全不知所措。任何帮助将不胜感激。
【问题讨论】:
-
11:30+12:30是00:00,因为你加起来有两个:30。
标签: python python-3.x datetime time timedelta