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

3
2个回答

4

看起来有一个名为isodate的第三方模块可能符合您的需求:

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对象(提供startend参数,以便根据提供的日期计算正确的持续时间):

In [8]: import datetime

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

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

请小心处理此函数,因为它可能返回不同的“鸭子”。例如,parse_duration('P1Y').months 可以正常工作,但 parse_duration('P365D').months 会抛出 AttributeError 异常。 - wim
0.5.0版本:将Duration对象上的方法从todatetime重命名为totimedelta。 - zs2020

0
如果您了解字符串表示的结构,可以使用time模块的strftimestrptime函数。
import time
sdate = 'Sat, 15 Dec 2012 04:01:02'
timestamp = time.strftime("%s", time.strptime(sdate, '%a, %b %d %H:%M:%S'))) 

有用的网站:http://strftime.org/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接