python 根据字符串时间获取时间差 根据时间戳获取时间差

welcome to my blog

问题描述: 需要根据两个时间戳获取时间差; 需要根据两个字符串时间获取时间差

解决方法:

根据字符串时间获取时间差

from datetime import datetime
# 字符串格式的时间
t1 = "2019-08-09 10:16:31"
# 将时间转成datetime.datetime类
t1 = datetime.strptime(t1, "%Y-%m-%d %H:%M:%S")

# 字符串格式的时间
t2 = "2020-05-10 22:05:11"
# 将时间转成datetime.datetime类
t2 = datetime.strptime(t2, "%Y-%m-%d %H:%M:%S")
# 打印时间差: 275 days, 11:48:40, 说明这两个时间相差275天11小时48分40秒
print(t2 - t1)

根据两个时间戳获取时间差

# 两个时间戳作差的结果就是两个时间相差的秒数
t1 = 1578450008.7148416
t2 = 1578450934.7338912
# 打印结果: 926.0190496444702
print(t2 - t1)

上面的方法有个不足, 因为秒这个单位还不够直观, 最好能转成小时和分钟, 为了达成这个目的, 可以自己手动实现, 也可以利用现成的工具, 我选择现成的工具, 如datetime模块, 下面举个例子

import time
from datetime import datetime
# 时间戳
t1 = 1336651555
# 提取时间戳中年月日等信息, 保存在time.struct_time对象中
t1 = time.localtime(t1)
# 将time.struct_time对象中的信息转成字符串格式
t1 = time.strftime("%Y-%m-%d %H:%M:%S", t1)
# 将字符串格式的时间转成datetime.datetime类
t1 = datetime.strptime(t1, "%Y-%m-%d %H:%M:%S")

# 时间戳
t2 = 1578450008.7148416
# 提取时间戳中年月日等信息, 保存在time.struct_time对象中
t2 = time.localtime(t2)
# 将time.struct_time对象中的信息转成字符串格式
t2 = time.strftime("%Y-%m-%d %H:%M:%S", t2)
# 将字符串格式的时间转成datetime.datetime类
t2 = datetime.strptime(t2, "%Y-%m-%d %H:%M:%S")
# 打印时间差: 2798 days, 14:14:13, 说明这两个时间相差2798天14小时14分13秒
print(t2 - t1)

你可能感兴趣的:(Python)