dateutil模块

安装:终端运行
pip install python-dateutil
python第三方模块dateutil模块主要使用以下,1, parse,2,rrule, 3,relativedelta。
parse把字符串格式的时间转化为datetime.datetime格式时间。util是计算时间差或者根据天,月,年等显示时间。

  • parse
    parse可以解析很多时间格式的字符串。空格,中横线,逗号,点,冒号都可识别
from dateutil.parser import parse

a = parse('Tue, Nov9')
print(a)

b = parse('2018.8.8')
print(b)

c = parse('2018-9-29')
print(c)

d = parse('2018,08,03')
print(d)

e = parse('08, 20')  # 如果没有传年份,默认值为本年,如果没有传时间,默认为0点
print(e)

f = parse('18:00:7')
print(f)

g = parse('Now the time is 19:00:00',fuzzy=True)  # 解析字符串中能识别的时间
print(g)

i = parse('09 08')
print(i)

输出结果

2018-11-09 00:00:00
2018-08-08 00:00:00
2018-09-29 00:00:00
2018-03-01 00:00:00
2018-08-20 00:00:00
2018-11-01 18:00:07
2018-11-01 19:00:00
2018-09-08 00:00:00
  • rrule
    • 按照参数输出datetime.datetime格式的时间
from dateutil.parser import parse
from dateutil.rrule import *

a = list(rrule(DAILY, dtstart=parse('2018.8.1'), until=parse('2018.8.7')))  # 按天打印
print(a)

b = list(rrule(DAILY, interval=3, dtstart=parse('2013.8.1'),until=parse('2013.8.7')))  # 间隔为3
print(b)

c = list(rrule(DAILY, count=3, dtstart=parse('2018.8.1'), until=parse('2018.8.7')))  # 显示前3个
print(c)

d = list(rrule(DAILY, byweekday=(MO, TU), dtstart=parse('2018.8.1'), until=parse('2018.8.7')))  # 只输出周一,周二
print(d)

e = list(rrule(MONTHLY, dtstart=parse('2018.5.1'), until=parse('2018.8.7')))  # 按月输出
  • 计算时间差
    datetime.rrule
from dateutil import rrule
day = rrule.rrule(rrule.DAILY, dtstart=oneday, until=today).count()

rrule.rrule
<class 'dateutil.rrule.rrule'>

# 相差多少天
rrule.rrule(rrule.DAILY, dtstart=datetime.date(1970,1,1), until=datetime.date.today()).count()
17837

# 相差多少年
rrule.rrule(rrule.YEARLY, dtstart=datetime.date(2009,1,1), until=datetime.date.today()).count()
10

# 几个月
rrule.rrule(rrule.MONTHLY, dtstart=datetime.date(2010,1,9), until=datetime.date.today()).count()
106
  • relativedelta
    relative:相关的,相对的,
    delta:间隔,一般用来表示差值
    在这里插入图片描述
    描述相对设定的时间的间隔

参考资料https://dateutil.readthedocs.io/en/stable/

猜你喜欢

转载自blog.csdn.net/weixin_42233629/article/details/83627894
今日推荐