在 Python 中将小时添加到日期时间
Add hours to datetime in Python
使用模块中的timedelta()
类datetime
将小时数添加到日期时间,例如result = dt + timedelta(hours=10)
。可以向timedelta
该类传递hours
参数并将指定的小时数添加到日期时间。
主程序
from datetime import datetime, timedelta # ✅ parse datetime string and add hours to datetime d = '2023-11-24 09:30:00.000123' # 👇️ convert string to datetime object dt = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f') print(dt) # 👉️ 2023-11-24 09:30:00.000123 result_1 = dt + timedelta(hours=3) print(result_1) # 👉️ 2023-11-24 12:30:00.000123 # ----------------------- # ✅ add hours to datetime dt_2 = datetime(2023, 9, 24, 9, 30, 35) print(dt_2) # 👉️ 2023-09-24 09:30:35 result_2 = dt_2 + timedelta(hours=4) print(result_2) # 👉️ 2023-09-24 13:30:35 # ------------------------ # ✅ add hours to current time now = datetime.today() print(now) # 👉️ 2022-06-22 13:10:20.515437 result_3 = now + timedelta(hours=5) print(result_3) # 👉️ 2022-06-22 18:10:20.515437
如果您只有一个时间组件,例如
09:30:15
向下滚动到最后一个代码片段。确保从模块中导入 timedeltadatetime
类
。datetime
第一个示例datetime
从日期时间字符串创建一个对象并向其添加小时数。
主程序
from datetime import datetime, timedelta # ✅ parse datetime string and add hours to datetime d = '2023-11-24 09:30:00.000123' # 👇️ convert string to datetime object dt = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f') print(dt) # 👉️ 2023-11-24 09:30:00.000123 result_1 = dt + timedelta(hours=3) print(result_1) # 👉️ 2023-11-24 12:30:00.000123
datetime.strptime()方法返回一个日期时间对象,该
对象对应于提供的日期字符串,根据格式进行解析。
如果您有一个以不同方式格式化的日期字符串,请使用
此文档表
来查找您应该作为第二个参数传递给该
strptime()
方法的格式代码。
第二个示例使用
datetime
类创建一个datetime
对象,并使用timedelta
该类向其添加小时数。
主程序
from datetime import datetime, timedelta dt_2 = datetime(2023, 9, 24, 9, 30, 35) print(dt_2) # 👉️ 2023-09-24 09:30:35 result_2 = dt_2 + timedelta(hours=4) print(result_2) # 👉️ 2023-09-24 13:30:35
我们传递了year
、month
、day
、hour
和
参数minute
的值。second
第三个示例将小时添加到当前时间。
主程序
from datetime import datetime, timedelta # ✅ add hours to current time now = datetime.today() print(now) # 👉️ 2022-06-22 13:10:20.515437 result_3 = now + timedelta(hours=5) print(result_3) # 👉️ 2022-06-22 18:10:20.515437
datetime.today()方法返回当前
本地日期时间。
我们需要使用一个
datetime
对象,因为它会在必要时自动滚动日、月和年。如果我们只有时间组件,这是不可能的。例如,
11:59:30PM
+2
小时会引发异常。
如果您只有时间组件,请使用该
datetime.combine
方法将时间与当前(或其他某个)日期组合起来并获取一个对象。 datetime
主程序
from datetime import datetime, date, timedelta, time t = time(6, 25) print(t) # 👉️ 06:25:00 result = datetime.combine(date.today(), t) + timedelta(hours=6) print(result) # 👉️ 2022-06-22 12:25:00 only_t = result.time() print(only_t) # 👉️ 12:25:00
datetime.combine
方法将 a和
date
作为time
参数,并datetime
通过组合它们返回一个新对象。
一旦我们得到一个datetime
对象,我们就可以使用timedelta
该类为其添加小时数。
如果您只需要在操作后提取时间,请使用对象time()
上的方法。datetime
主程序
from datetime import datetime, date, timedelta, time t = time(6, 25) print(t) # 👉️ 06:25:00 result = datetime.combine(date.today(), t) + timedelta(hours=6) print(result) # 👉️ 2022-06-22 12:25:00 # ✅ only get updated time only_t = result.time() print(only_t) # 👉️ 12:25:00
datetime.time
方法返回一个具有相同小时、分钟、秒和毫秒的时间对象。