Python中计算指定格式(YYYY-MM-DD HH-MM-SS)日期时间的时间差
计算YYYY-MM-DD HH-MM-SS格式的两个日期时间差
没问题,我来帮你搞定这个日期时间差的计算,专门针对你提到的YYYY-MM-DD HH-MM-SS这种格式。其实核心就是先把字符串转换成Python的datetime对象,之后计算差值就很简单了,咱们一步步来:
步骤1:导入必要的模块
首先得导入Python标准库中的datetime模块,这是处理日期时间的基础:
import datetime
步骤2:定义你的日期时间字符串
先把你要计算的两个日期时间以字符串形式写出来,比如:
dt_str_a = "2024-06-01 10-30-00" dt_str_b = "2024-06-03 15-45-15"
步骤3:将字符串解析为datetime对象
这里关键是用datetime.datetime.strptime()方法,它需要两个参数:日期时间字符串,以及对应的格式匹配字符串。针对YYYY-MM-DD HH-MM-SS格式,咱们的格式字符串应该是"%Y-%m-%d %H-%M-%S",每个符号对应不同的时间单位:
%Y:4位数的年份%m:2位数的月份%d:2位数的日期%H:24小时制的小时数%M:分钟数%S:秒数
代码示例:
dt_a = datetime.datetime.strptime(dt_str_a, "%Y-%m-%d %H-%M-%S") dt_b = datetime.datetime.strptime(dt_str_b, "%Y-%m-%d %H-%M-%S")
步骤4:计算时间差
直接用两个datetime对象相减,会得到一个timedelta对象,它包含了两个时间点之间的差值:
time_diff = dt_b - dt_a # 注意顺序,后减前得到正的差值
步骤5:查看或处理差值结果
你可以直接打印time_diff,它会输出类似2 days, 5:15:15这样的可读格式。如果需要提取具体的数值,比如:
- 获取总天数:
time_diff.days - 获取总秒数:
time_diff.total_seconds() - 拆分小时、分钟、秒:可以通过总秒数换算,或者直接访问
time_diff.seconds(注意这个是一天内的秒数,不包含天数)
完整的示例代码:
import datetime # 定义两个日期时间字符串 dt_str1 = "2024-05-20 14-20-00" dt_str2 = "2024-05-22 16-35-45" # 解析为datetime对象 dt1 = datetime.datetime.strptime(dt_str1, "%Y-%m-%d %H-%M-%S") dt2 = datetime.datetime.strptime(dt_str2, "%Y-%m-%d %H-%M-%S") # 计算差值 delta = dt2 - dt1 # 输出结果 print("两个时间的差值:", delta) print("差值的总天数:", delta.days) print("差值的总秒数:", delta.total_seconds()) print("一天内的秒数部分:", delta.seconds)
运行这段代码,你就能得到清晰的时间差结果啦。需要注意的是,如果你的日期时间字符串格式有细微变化(比如12小时制),只需要调整格式字符串对应的符号就行,但针对你说的YYYY-MM-DD HH-MM-SS,上面的代码完全适用。
内容的提问来源于stack exchange,提问作者Arseniy Sleptsov
相关产品推荐
相关产品推荐

