Python 如何将字符串日期间隔转换为天数或秒数(ISO_8601)?

Python 如何将字符串日期间隔转换为天数或秒数(ISO_8601)?,python,Python,python中是否有一种简单的方法可以转换日期间隔的字符串表示形式: P1M 时间戳还是日期时间对象 基本上,我需要根据此ISO使用日期间隔: 类似于的东西,如果您知道字符串表示的结构,您可以使用time模块的strftime和strptime import time sdate = 'Sat, 15 Dec 2012 04:01:02' timestamp = time.strftime("%s", time.strptime(sdate, '%a, %b %d %H:%M:%S')))

python中是否有一种简单的方法可以转换日期间隔的字符串表示形式:

P1M
时间戳还是日期时间对象

基本上,我需要根据此ISO使用日期间隔:


类似于

的东西,如果您知道字符串表示的结构,您可以使用
time
模块的
strftime
strptime

import time
sdate = 'Sat, 15 Dec 2012 04:01:02'
timestamp = time.strftime("%s", time.strptime(sdate, '%a, %b %d %H:%M:%S'))) 

有用的站点:

似乎有一个名为的第三方模块,它可以做您想做的事情:

In [1]: from isodate import parse_duration

In [2]: parse_duration('P1M')
Out[2]: isodate.duration.Duration(0, 0, 0, years=0, months=1)
如果需要,还可以将此对象转换为
datetime.timedelta
对象(提供
start
end
参数,以便根据提供的日期计算适当的持续时间):


注意这一点,因为函数可能返回不同的“ducks”。例如,
parse_duration('P1Y')。months
可以工作,但
parse_duration('P365D')。months
会抛出一个AttributeError。0.5.0版本:将Duraction对象上的重命名方法todatetime转换为totimedelta
In [8]: import datetime

In [9]: d = parse_duration('P1M')

In [10]: d.todatetime(start=datetime.datetime.today())
Out[10]: datetime.timedelta(31)