首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于dateutil.relativedelta的问题-为什么输出总是为零?

关于dateutil.relativedelta的问题-为什么输出总是为零?
EN

Stack Overflow用户
提问于 2021-06-02 14:29:14
回答 2查看 28关注 0票数 1

为什么这个relativedelta属性的输出也是零?数据文件包含两个日期时间字符串,目的是获取两者之间的时间差。

代码语言:javascript
复制
# 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)
EN

回答 2

Stack Overflow用户

发布于 2021-06-02 14:41:21

而不是

代码语言:javascript
复制
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")

带上

代码语言:javascript
复制
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")
票数 1
EN

Stack Overflow用户

发布于 2021-06-02 14:45:15

您向t2提供了错误的输入。拆分后,来自文件的输入就变成了这个['06/21/2019', '21:45:24', '06/21/2020', '21:45:26']

所以t1应该得到输入0和1,t2应该得到输入2和3。

以下是更新后的代码:

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67799986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档