这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战
复习回顾
关于时间相关的模块,强大的Python提供了许多内置模块。
- time 模块:重点处理系统时间戳计算
- calendar 模块:处理通用日历操作
- zoneinfo 模块:Python 3.9 支持对IANA时区代码处理
- datetime 模块:提供6个大类对时间日期更人性化操作
本期,我们将对时间操作第三方模块之一的dateutil模块相关方法学习,Let’s go~
dateutil 模块由Gustavo Niemeyer 在2003年编写而成,经历四位维护人员进行维护,目前已经更迭得到最新的2.8.2版本
dateutil 模块对Python 内置的datetime模块进行扩展时区和解析。
查看dateutil模块包含7个模块,其中parser和rrule是主要模块
- dateutil 模块特点
+ 能够快速计算出相对时间例如下周、下个月、明年
+ 对指定两个日期或者日期对象进行计算出相对间隔
+ 能对多种时区文件进行解析例如UTC时区、tzinfo时区、Windows注册表时区
+ 支持包括RFC或者其他任何字符串格式的日期进行解析
- dateutil 模块获取
dateuitl 模块为Python 第三方库,因此需要使用pip工具进行下载
1 | python复制代码pip install python-dateutil |
- dateutil 模块使用
+ dateutil 模块需要使用 from..import 导入
- datetutil 模块提供7个模块
方法 | 作用 |
---|---|
dateutil.parser | 将字符串解析成datetime |
dateutil.rrule | 将参数输出datetime.datetime格式的时间 |
dateutil.relativedelta | 时间偏移量 |
dateutil.easter | 复活节日期计算 |
dateutil.tz | 对datetime.tzinfo抽象类时区实现 |
dateutil.utils | 提供便利且实用功能来处理日期时间 |
dateutil.zoneinfo | 重建zoneinfo tar 内部时区信息(ftp.iana.org/tz) |
* dateutil 模块提供主要的方法 | |
—————— |
+ dateutil.parser.parse(string)将字符串解析成
- string 可以为任何一个字符串
- 时间字符串形式可以有逗号、斜杠、横杆等
+ datetimedateutil.rrule.rrule() 将参数输出datetime.datetime格式的时间
rrule方法参数说明
| 参数 | 含义 |
| --- | --- |
| freq | 单位,可选的值为YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY,,MINUTELY,SECONDLY |
| dtstart | 开始时间,时间格式datetime.datatime类型 |
| interval | 间隔 |
| wkst | 周开始时间 |
| count | 生产时间的个数 |
| until | 结束时间,时间格式为datetime.dateatime类型 |
| bysetpos | 必须为整数或者整数序列,设置匹配的周期频率 |
| bymonth | 设置匹配的月份 |
| bymonthday | 设置匹配每月的日期 |
| byyearday | 设置匹配每年的天数 |
| byaster | 设置匹配的复活节,星期天为0 |
| byweekno | 设置匹配第几周 |
| byweekday | MO,TU,WE,TH,FR,SA,SU |
| byhour | 设置匹配小时 |
| byminute | 设置匹配分钟 |
| bysecond | 设置匹配秒数 |
| cache | 必须为布尔值,其实很启动缓存 |
+ dateutil.relativedelta.relativedelta()时间偏移量
| 参数 | 说明 |
| --- | --- |
| year, month, day, hour, minute, second, microsecond | 绝对单位,不会执行运算,会直接替换原始日期时间对应的值 |
| years, months, weeks, days, hours, minutes, seconds, microseconds | 相对信息,可以为正数或复负数,会对原始日期时间进行相对值进行计算 |
| weekday | 工作日增量值,可以为正数或者负数,例如MO(1),0=MO |
| leepdays | 给定日期中计算出润日 |
| yearday,nlyearday | 设置年份为闰年或者非闰年,转换成日/月/闰日 |
PS: dateutil 模块官方手册
可以查看详细的用法案例
我们学习了dateutil模块相关的方法,来进行实操一下吧~
- 使用parse解析时间字符串,rrule获取时间列表
1 | python复制代码from dateutil.rrule import * |
1 | input复制代码# 终端输出结果 |
- 获取指定间隔的时间列表
1 | python复制代码 def get_two_date_interval(sdate,edate): |
总结
本期,我们对 dateutil 模块对字符串进行解析、时间间隔相关的操作进行学习。
以上是本期内容,欢迎大佬们点赞评论,下期见~
本文转载自: 掘金