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

时间:2012-12-15 04:13:13

标签: python

在python中有一种简单的方法来转换日期间隔的字符串表示:

P1M

到时间戳或日期时间对象?

基本上我需要根据ISO:http://en.wikipedia.org/wiki/ISO_8601

处理日期间隔

类似于http://php.net/manual/en/class.dateinterval.php

的内容

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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/