dateutil库很强大,可以:

1、计算日期差值

2、计算两个date或者datetime对象的差值

3、计算更灵活的时间规则

4、解析几乎任何字符串格式的日期

5、根据系统信息自动分析时区信息

需要注意的是,dateutil不是内置的库,需要我们手动安装。安装python-dateutil

parse模块

parse模块可以匹配几乎所有的时间字符串并将其转换为datetime对象。

举个例子

from dateutil.parser import parse

print(parse('Sat Oct 11 17:13:16 UTC 2003'))
print(parse('2018-08-20'))
print(parse('2018.8.20'))
print(parse('12:00:00'))
#fuzzy开启模糊匹配,自动过滤无法识别的时间日期字符
print(parse("this is the wonderful moment 21:00:00,I feel good", fuzzy=True))

如何在匹配的时候忽略时区呢?那就需要在需要匹配的字符串后面加上ignoretz=True

rrule模块

rrule模块可以计算并生成一些重复的时间规则,提供对iCalendar RFC中的一些标准的支持。

举个简单的例子。我们给出一个日期 2014年12月31日,我们需要计算包括它在内的往后4个有31号的月份,并输出具体是哪一天。

import pprint
from dateutil.rrule import rrule, MONTHLY
from datetime import datetime

start_date = datetime(2014, 12, 31)
l = list(rrule(freq=MONTHLY, count=4, dtstart=start_date))
pprint.pprint(l)

输出结果

[datetime.datetime(2014, 12, 31, 0, 0),
 datetime.datetime(2015, 1, 31, 0, 0),
 datetime.datetime(2015, 3, 31, 0, 0),
 datetime.datetime(2015, 5, 31, 0, 0)]

你也可能喜欢

发表评论