Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用这种格式解析和计算日期戳中经过的秒数?_Python_Python 3.x_Datetime_Time - Fatal编程技术网

Python 如何用这种格式解析和计算日期戳中经过的秒数?

Python 如何用这种格式解析和计算日期戳中经过的秒数?,python,python-3.x,datetime,time,Python,Python 3.x,Datetime,Time,给定如下字符串: 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&

给定如下字符串:

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()

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

基本上,你需要将每个字符串转换成一个日期时间(这里使用并使用与时间字符串格式相匹配的a),然后从另一个字符串中减去一个,得到一个对象。然后可以对timedelta对象调用该方法。这里有一种方法可以做到这一点:

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())

“我不知道如何提取秒数”您似乎已经找到了datetime和strptime。扩展解析格式以包含小时:分钟:秒.micro有什么问题?正确@mistermiyagi什么是正确的?涵盖的日期和时间格式相同。您是如何仅使用前者的?感谢您的帮助,您是从哪里获得此格式的:
'%Y-%m-%dT%H:%m:%S.%fZ'
?我在文档的答案中添加了链接。但基本上,我是通过查看日期字符串的格式并替换这里找到的代码来弥补的:以四位数的年份开始?“%Y”然后是破折号?“%Y-”那么是两位数的月份吗?“%Y-%m”等。破折号、冒号、T、Z和空格以及其他任何你可能发现的东西都可以是它们的文字本身。(Z实际上意味着时间是UTC时区,但这超出了这个答案的范围,为了简单起见,我忽略了它。)