在 Python 中向 datetime 对象添加时间

使用 datetime 模块中的 timedelta() 类将时间添加到 datetime,例如 result = dt + timedelta(hours=2, minutes=25, seconds=24)。 timedelta 类可以传递小时、分钟和秒参数,并将指定的时间添加到日期时间。

from datetime import datetime, timedelta

# ✅ add time to datetime
dt = datetime(2023, 9, 24, 9, 30, 35)
print(dt)  # 👉️ 2023-09-24 09:30:35

result = dt + timedelta(hours=2, minutes=25, seconds=24)
print(result)  # 👉️ 2023-09-24 11:55:59

print(result.time())  # 👉️ 11:55:59
# ------------------------------

# ✅ add time to current time

now = datetime.today()
print(now)  # 👉️ 2022-06-22 15:45:59.732804

result_2 = now + timedelta(hours=15)
print(result_2)  # 👉️ 2022-06-23 06:45:59.732804

print(result_2.time())  # 👉️ 06:45:59.732804

如果我们只有一个时间组件,例如 09:30:13 向下滚动到最后一个代码片段。

确保从 datetime 模块导入 datetime 和 timedelta 类。

第一个示例使用 datetime 类创建一个 datetime 对象。

我们传递了年、月、日、小时、分钟和秒参数的值。

一旦我们有了一个 datetime 对象,我们就可以使用 timedelta 类给它添加时间。

from datetime import datetime, timedelta # ✅ add time to datetime dt = datetime(202392493035print(dt) # 👉️ 2023-09-24 09:30:35 result = dt + timedelta(hours=2, minutes=25, seconds=24print(result) # 👉️ 2023-09-24 11:55:59 print(result.time()) # 👉️ 11:55:59

timedelta 类可以传递天、周、小时、分钟、秒、毫秒和微秒作为参数。

所有参数都是可选的,默认为 0。

第二个示例将时间添加到当前时间。

from datetime import datetime, timedelta


now = datetime.today()
print(now)  # 👉️ 2022-06-22 15:45:59.732804

result_2 = now + timedelta(hours=15)
print(result_2)  # 👉️ 2022-06-23 06:45:59.732804

print(result_2.time())  # 👉️ 06:45:59.732804

datetime.today() 方法返回当前的本地日期时间。

我们需要使用 datetime 对象,因为它会在必要时自动滚动分钟、小时、天、月和年。

如果我们只有时间组件,这是不可能的。 例如,晚上 11:59:30 + 2 小时会引发异常。

如果我们只有时间组件,请使用 datetime.combine 方法将时间与当前(或其他)日期组合并获取 datetime 对象。

from datetime import datetime, date, timedelta, time

t = time(8, 25, 15)
print(t)  # 👉️ 08:25:15

result = datetime.combine(date.today(), t) + \
    timedelta(hours=4, minutes=10, seconds=10)
print(result)  # 👉️ 2022-06-22 12:35:25

only_t = result.time()
print(only_t)  # 👉️ 12:35:25

datetime.combine 方法将日期和时间作为参数,并通过组合它们返回一个新的日期时间对象。

一旦我们得到一个 datetime 对象,我们就可以使用 timedelta 类给它添加时间。

如果您只需要提取操作后的时间,请在 datetime 对象上使用 time() 方法。

from datetime import datetime, date, timedelta, time

t = time(8, 25, 15)
print(t)  # 👉️ 08:25:15

result = datetime.combine(date.today(), t) + \
    timedelta(hours=4, minutes=10, seconds=10)
print(result)  # 👉️ 2022-06-22 12:35:25

# ✅ only extract the time component
only_t = result.time()
print(only_t)  # 👉️ 12:35:25

datetime.time 方法返回具有相同小时、分钟、秒和毫秒的时间对象。