3

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

P1M

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

基本上我需要根据这个 ISO 处理日期间隔:http ://en.wikipedia.org/wiki/ISO_8601

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

4

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

In [8]: import datetime

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

In [10]: d.todatetime(start=datetime.datetime.today())
Out[10]: datetime.timedelta(31)
于 2012-12-15T04:36:12.750 回答
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/

于 2012-12-15T04:19:48.427 回答