首页 > 解决方案 > 如何使用这种格式解析和计算日期戳中经过的秒数?

问题描述

给定这样的字符串:

2020-04-09T13:15:52.838Z - 2020-04-09T13:16:09.704Z

计算经过的秒数的正确方法是什么?到目前为止,我试过这个:

s = '2021-03-09T13:15:52.838Z - 2021-03-09T13:16:09.704Z'.split(' - ')

datetime.strptime(s[0], "%Y-%m-%d").date() - datetime.strptime(s[1],"%Y-%m-%d").date()

但是,我不确定如何提取秒数并计算两个时间戳之间的经过时间。知道如何以秒为单位获得经过的时间吗?

标签: pythonpython-3.xdatetimetime

解决方案


基本上,您希望将每个字符串转换为日期时间(此处使用datetime.strptime()并使用与时间字符串格式匹配的格式字符串),然后从另一个中减去一个以获得datetime.timedelta对象。然后您可以在 timedelta 对象上调用total_seconds()方法。这是您可以做到的一种方法:

import datetime

s = '2021-03-09T13:15:52.838Z - 2021-03-09T13:16:09.704Z'.split(' - ')

first_time = datetime.datetime.strptime(s[0], '%Y-%m-%dT%H:%M:%S.%fZ')
second_time = datetime.datetime.strptime(s[1], '%Y-%m-%dT%H:%M:%S.%fZ')

time_delta = second_time - first_time

print(time_delta.total_seconds())

推荐阅读