安装命令为:
pip3 install python-dateutil
使用例子
(1)日期转换,字符串日期转为datetime
from dateutil import parser # 日期解析器
print(parser.parse("Jul 15 2019 13:00:36")) # 2019-07-15 13:00:36 月份也可全称,如july,January
print(parser.parse('20190717')) # 2019-07-17 00:00:00
print(parser.parse('2019-07-17')) # 2019-07-17 00:00:00
print(type(parser.parse('2019-07-17'))) # <class 'datetime.datetime'>
(2)计算时间差:如下为计算一个人出生到现在的时间
from dateutil.relativedelta import relativedelta
from datetime import date
# 1.第一种方式
today = date.today() # 今天为2019-08-08
birthday = date(year=2000,month=1,day=1) # 假设出生日期为2000-1-1
diffday = (today - birthday) # 今天和出生日期计算相差天数
print(diffday.days) # 只能计算出天
# 2.第二种方式
# 下面可计算两个日期中间相差几年,几个月和几天
diff = relativedelta(today,birthday)
print(diff) # relativedelta(years=+19, months=+7, days=+7) 19岁3个月29天
print(diff.years) # 年
print(diff.months) # 月
print(diff.days) # 日
(3) 获取接下来每周周六的日期
from dateutil.rrule import rrule,WEEKLY,calendar
from datetime import date,datetime
next_wednesday = date(year=2019,month=8,day=10) # 设置下一个周六,2019-08-10
#next_wednesday = datetime(2019,8,10)
data = list(rrule(WEEKLY,count=6,dtstart=next_wednesday))
# 上面rrule函数中WEEKLY表示频次,即每周,count表示计算的数据数为6个
# dtstart即起始日 byweekday可以指定MO,TU,WE,TH,FR,SA,SU。即周一到周日。
# 输出结果
for one in data:
print(one.strftime('%Y-%m-%d'))
'''
2019-08-10
2019-08-17
2019-08-24
2019-08-31
2019-09-07
2019-09-14
'''
reference:
https://www.cnblogs.com/zmhzmh/p/8888001.html
https://dateutil.readthedocs.io/en/stable/examples.html