如何获取两组日期时间对象之间的时间差(以小时为单位)?蟒蛇

问题描述 投票:0回答:1

我正在连接到一个返回文章列表的 API,每篇文章都有 created_atmodified_at 属性。我想返回每篇文章的created_at 和modified_at 时间之间的差异(以小时为单位)。

我尝试了此操作,但在检查时,之间的时间值不正确。我认为这是因为我不是在这里查看每篇文章,而是查看类别。

首先我得到了每篇文章的创建日期,这些值是正确的:

from datetime import datetime

rArticles = requests.get("https://....", auth = (apiKey, password))
responseArticles = rArticles.json()

        dateCreated = []
        for art in responseArticles["articles"]:
           dateCreated.append(art["created_at"])
           for ts in dateCreated:
             datetimeObjectCreated = datetime.strptime(ts,'%Y-%m-%dT%H:%M:%SZ')

返回:enter image description here

然后我得到了每篇文章的修改日期,这些值似乎也是正确的,如果文章没有被修改,则可能值得注意,日期将与创建的日期相同:

       dateModified = []
       for art2 in responseArticles["articles"]:
          dateModified.append(art2["modified_at"])
          for ts2 in dateModified:
             datetimeObjectModified = datetime.strptime(ts2,'%Y-%m-%dT%H:%M:%SZ')

返回:enter image description here

尝试获取以下日期之间的日期:

timeBetween = datetimeObjectModified - datetimeObjectCreated

返回:enter image description here

这是不正确的,例如,当查看第四个向下时,2020-08-06 和 2020-08-06 之间的时间不是 1213 天。

我也尝试过这个方法:

for time in datetimeObjectCreated:
   timeBetween = datetimeObjectModified - datetimeObjectCreated

但这会返回错误:enter image description here

谢谢你

python python-3.x python-datetime
1个回答
0
投票

除非我漏掉了你的意图,否则你只是想要

from datetime import datetime

for art in responseArticles["articles"]:
    ctime = datetime.strptime(art["created_at"], "%Y-%m-%dT%H:%M:%SZ")
    mtime = datetime.strptime(art["modified_at"], "%Y-%m-%dT%H:%M:%SZ")
    mod_hours = (mtime - ctime).total_seconds() / 3600
    print(f"{ctime=}, {mtime=}, {mod_hours=}")

如果不是所有文章都有修改时间等,您需要使用合适的

if art.get("modified_at")
进行修改。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.