python-dateutil 库包含了日期解析、日期生成、日期计算等主要的日期处理函数。特别是日期计算的函数给coder带来很多便利,不用再费尽心思的去考虑日期的变化。
立即前往微信小程序【知识星球】提问>>>
使用pip的方式安装好python-dateutil模块。
pip install python-dateutil
将其导入到我们的代码块中。
from dateutil import rrule
from dateutil.parser import *
主要分三个部分对python-dateutil做一个使用说明。
python-dateutil 日期解析部分
轻松完成大多数日期格式的解析,向大佬递茶!
print('0000-00-00 模式的日期解析', parse("2022-03-15"))
# 0000-00-00 模式的日期解析 2022-03-15 00:00:00
print('00000000 模式的日期解析', parse("20220315"))
# 00000000 模式的日期解析 2022-03-15 00:00:00
print('0000/00/00 模式的日期解析', parse("2022/03/15"))
# 0000/00/00 模式的日期解析 2022-03-15 00:00:00
print('00-00 模式的日期解析', parse("03-15"))
# 00-00 模式的日期解析 2022-03-15 00:00:00
print('00/00 模式的日期解析', parse("03/15"))
# 00/00 模式的日期解析 2022-03-15 00:00:00
print('英文时间 模式的日期解析', parse("Mar 15 2022"))
# 英文时间 模式的日期解析 2022-03-15 00:00:00
面对各种形式的日期字符串,使用parse函数都能完成正确的解析。这样的解析经常在分析日志文件的时候用处比较多,并且可以返回datetime的python时间处理对象。
python-dateutil 日期生成部分
日起生成的使用,他能够通过各种规则生成我们需要的时间列表。
print('生成连续的时间列表:')
print(list(rrule.rrule(rrule.DAILY, dtstart=parse('2022-03-10'), until=parse('2022-03-15'))))
# [datetime.datetime(2022, 3, 10, 0, 0), datetime.datetime(2022, 3, 11, 0, 0), datetime.datetime(2022, 3, 12, 0, 0), datetime.datetime(2022, 3, 13, 0, 0), datetime.datetime(2022, 3, 14, 0, 0), datetime.datetime(2022, 3, 15, 0, 0)]
print('生成间隔一天的时间列表:')
print(list(rrule.rrule(rrule.DAILY, interval=2, dtstart=parse('2022-03-10'), until=parse('2022-03-15'))))
# [datetime.datetime(2022, 3, 10, 0, 0), datetime.datetime(2022, 3, 12, 0, 0), datetime.datetime(2022, 3, 14, 0, 0)]
print('生成间隔一月的时间列表:')
print(list(rrule.rrule(rrule.MONTHLY, dtstart=parse('2022-03-10'), until=parse('2022-06-10'))))
# [datetime.datetime(2022, 3, 10, 0, 0), datetime.datetime(2022, 4, 10, 0, 0), datetime.datetime(2022, 5, 10, 0, 0), datetime.datetime(2022, 6, 10, 0, 0)]
print('生成星期二的时间列表:')
print(list(rrule.rrule(rrule.DAILY, byweekday=rrule.TU, dtstart=parse('2022-03-10'), until=parse('2022-04-10'))))
# [datetime.datetime(2022, 3, 15, 0, 0), datetime.datetime(2022, 3, 22, 0, 0), datetime.datetime(2022, 3, 29, 0, 0), datetime.datetime(2022, 4, 5, 0, 0)]
python-dateutil 日期计算部分
通过简单的函数调用可以完成对各种格式的日期差值的计算。
print('计算两个日期相差的天数:')
print('2022-03-10 至 2022-04-10 相差天数:',rrule.rrule(rrule.DAILY,dtstart=parse('2022-03-10'),until=parse('2022-04-10')).count())
# 2022-03-10 至 2022-04-10 相差天数:32
print('计算两个日期相差的月数:')
print('2022-03-10 至 2022-04-10 相差月数:',rrule.rrule(rrule.MONTHLY,dtstart=parse('2022-03-15'),until=parse('2022-04-10')).count())
# 2022-03-10 至 2022-04-10 相差月数:1
「Python 集中营」,只做知识分享 !
联系客服