博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python第三方库 - dateutil
阅读量:7196 次
发布时间:2019-06-29

本文共 2662 字,大约阅读时间需要 8 分钟。

简介

  扩展并增强 datetime 模块的功能。支持 Python 2.3+。

  官方文档 : 

 

安装

两种方法:

  easy_install : easy_install python-dateutil

  pip在线安装 :  pip install python-dateutil

 

方法

1,parse 

字符串可以很随意,可以用时间日期的英文单词,可以用横线、逗号、空格等做分隔符。

没指定时间默认是0点,没指定日期默认是今天,没指定年份默认是今年。

>>> from dateutil.parser import parse  # 导入模块 >>> parse('November 1')  # 默认年份是系统年份datetime.datetime(2018, 11, 1, 0, 0)>>> parse('11/01')  # 任意格式datetime.datetime(2018, 11, 1, 0, 0)>>> parse('20181101165959')datetime.datetime(2018, 11, 1, 16, 59, 59)>> parse('2018-11-01')  # 注意日期为8位datetime.datetime(2018, 11, 1, 0, 0)>>> parse('16:59:59')  # 默认日期为系统日期 datetime.datetime(2018, 11, 1, 16, 59, 59)>>> parse('2020-10-1 10:30')  # 可以更改为你想在的日期  datetime.datetime(2020, 10, 1, 10, 30)# fuzzy开启模糊匹配,过滤掉无法识别的时间日期字符>>> parse("this is the wonderful moment 16:59:59,I feel good",fuzzy=True)datetime.datetime(2018, 11, 1, 16, 59, 59)

 

2,rrule

函数原型如下:

rrule(self, freq, dtstart=None,      interval=1, wkst=None, count=None,       until=None, bysetpos=None, bymonth=None,       bymonthday=None, byyearday=None, byeaster=None,       byweekno=None, byweekday=None, byhour=None,       byminute=None, bysecond=None, cache=False)

其中:

  • freq:可以理解为单位。可以是 YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY。即年月日周时分秒。
  • dtstart,until:是开始和结束时间。
  • wkst:周开始时间。 
  • interval:间隔。 
  • count:指定生成多少个。
  • byxxx:指定匹配的周期。比如byweekday=(MO,TU)则只有周一周二的匹配。byweekday可以指定MO,TU,WE,TH,FR,SA,SU。即周一到周日。
>>> from dateutil.rrule import *>>> list(rrule(DAILY,dtstart=parse('2013-08-01'),until=parse('2013-08-07')))  # 2013-08-01到2013-08-07每日[datetime.datetime(2013, 8, 1, 0, 0), datetime.datetime(2013, 8, 2, 0, 0), datetime.datetime(2013, 8, 3, 0, 0), datetime.datetime(2013, 8, 4, 0, 0), datetime.datetime(2013, 8, 5, 0, 0),  datetime.datetime(2013, 8, 6, 0, 0),  datetime.datetime(2013, 8, 7, 0, 0)]>>> list(rrule(DAILY,interval=3,dtstart=parse('2013-08-01'),until=parse('2013-08-07')))  # 间隔为3[datetime.datetime(2013, 8, 1, 0, 0), datetime.datetime(2013, 8, 4, 0, 0), datetime.datetime(2013, 8, 7, 0, 0)]>>> list(rrule(DAILY,count=3,dtstart=parse('2013-08-01'),until=parse('2013-08-07')))  # 只生成3个[datetime.datetime(2013, 8, 1, 0, 0), datetime.datetime(2013, 8, 2, 0, 0), datetime.datetime(2013, 8, 3, 0, 0)]>>> list(rrule(DAILY,byweekday=(MO,TU),dtstart=parse('2013-08-01'),until=parse('2013-08-07')))  # 只匹配周一周二的[datetime.datetime(2013, 8, 5, 0, 0), datetime.datetime(2013, 8, 6, 0, 0)]>>> list(rrule(MONTHLY,dtstart=parse('2013-05-19'),until=parse('2013-08-20')))  # 按月为单位[datetime.datetime(2013, 5, 19, 0, 0), datetime.datetime(2013, 6, 19, 0, 0), datetime.datetime(2013, 7, 19, 0, 0), datetime.datetime(2013, 8, 19, 0, 0)]

 

 

 

转载于:https://www.cnblogs.com/peng104/p/9890507.html

你可能感兴趣的文章
笔记 - 2、HTML - 表格
查看>>
Vue 2.5发布在即 将全面支持TypeScript
查看>>
怎么实现三列布局(左侧和右侧宽度固定,中间自适应)
查看>>
DTJQP
查看>>
小猿圈python之Django和Flask比较?
查看>>
Android Studio 代码模版,一键生成 MVP 类
查看>>
拿下阿里、头条、滴滴的offer后谈谈面试经验(上)
查看>>
TOMCAT应用管理员配置
查看>>
Qt学习系列3--解决中文问题
查看>>
IIS 允许下载MDB文件的方法
查看>>
OpenCV 不同的数据类型调用不同的函数
查看>>
自定义django模板的 tags和filters
查看>>
vim 光标移动操作
查看>>
MVC5-3 Result分析
查看>>
7-74 JavaScript 事件
查看>>
Flask蓝图基本使用
查看>>
Dynamics CRM 365 and Azure Service Bus – Queue
查看>>
RDD
查看>>
ionic3 打包发布,以安卓说明
查看>>
node.js 的 os 模块
查看>>