如何解决关于 dateutil.relativedelta 的问题 - 为什么输出始终为零?
为什么这个relativedelta属性的输出也为零? 数据文件包含两个日期时间字符串,目的是获取两者的时间差。
# python3.6 time_diff.py
0
0
0
0
# cat data
06/21/2019 21:45:24 06/21/2020 21:45:26
06/21/2019 22:42:25 06/22/2020 01:28:41
06/21/2019 22:41:32 06/21/2020 22:42:32
06/20/2019 23:42:25 06/22/2020 02:42:29
# cat time_diff.py
import dateutil.relativedelta,datetime
f = open("data","r")
for line in f:
t1 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1],"%m/%d/%Y %H:%M:%s")
t2 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1],"%m/%d/%Y %H:%M:%s")
rd = dateutil.relativedelta.relativedelta(t1,t2)
print(rd.seconds)
解决方法
代替
t1 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1],"%m/%d/%Y %H:%M:%S")
t2 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1],"%m/%d/%Y %H:%M:%S")
一起去
t1 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1],"%m/%d/%Y %H:%M:%S")
t2 = datetime.datetime.strptime(line.split()[2] + " " + line.split()[3],"%m/%d/%Y %H:%M:%S")
,
您向 t2 提供了错误的输入。从文件中拆分输入后变成这个 ['06/21/2019','21:45:24','06/21/2020','21:45:26']
。
所以 t1 应该得到输入 0 和 1,t2 应该得到输入 2 和 3。
以下是更新后的代码:
import dateutil.relativedelta,datetime
f = open("data","r")
for line in f:
t1 = datetime.datetime.strptime(line.split()[0] + " " + line.split()[1],"%m/%d/%Y %H:%M:%S")
t2 = datetime.datetime.strptime(line.split()[2] + " " + line.split()[3],"%m/%d/%Y %H:%M:%S")
rd = dateutil.relativedelta.relativedelta(t1,t2)
print(t1,t2,rd.seconds)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。