python中dateutil库用法详解
Python 详解 用法
2023-09-11 14:15:15 时间
dateutil库是一个处理时间的工具库。本地自带,一般不用再次安装。
1、直接在某个时间点上直接修改年份、月份等信息。
示例代码:
from dateutil.relativedelta import relativedelta
from datetime import datetime
now_time = datetime.now()
print(now_time)
# 将当前时间年份增加3年或减少3年,
# alter_year = relativedelta(years=-3)
alter_year = relativedelta(years=3)
# aa = now_time - alter_year
aa = now_time + alter_year
print(aa)
# months, weeks, days, hours, minutes, seconds, microseconds方法同years
"""官方文档解释:
years, months, weeks, days, hours, minutes, seconds, microseconds:
Relative information, may be negative (argument is plural); adding
or subtracting a relativedelta with relative information performs
the corresponding arithmetic operation on the original datetime value
with the information in the relativedelta.
"""
# 将当前时间年份直接更改为某个具体年份
alter_year = relativedelta(year=2010)
# bb = now_time - alter_year
bb = now_time + alter_year
print(bb)
# month, day, hour, minute, second, microsecond方法同year
""" 官方文档解释:
year, month, day, hour, minute, second, microsecond:
Absolute information (argument is singular); adding or subtracting a
relativedelta with absolute information does not perform an arithmetic
operation, but rather REPLACES the corresponding value in the
original datetime with the value(s) in relativedelta.
"""
运行结果:
2、日期转换,字符串日期转为datetime
示例代码:
from dateutil.parser import parse # 日期解析器
print(parse("Jul 15 2022 13:00:36")) # 月份也可全称,如july,January
print(parse('20220717'))
print(parse('2022-07-17'))
print(type(parse('2022-07-17')))
运行结果:
3、计算时间差:如计算一个人出生到现在的时间
示例代码:
from dateutil.relativedelta import relativedelta
from datetime import date
# 1.第一种方式
today = date.today()
print(today)
birthday = date(year=2020, month=1, day=1) # 假设出生日期为2020-1-1
print(birthday)
diffday = (today - birthday) # 今天和出生日期计算相差天数
print(diffday)
print(diffday.days) # 只能计算出天
# 2.第二种方式
# 下面可计算两个日期中间相差几年,几个月和几天
diff = relativedelta(today, birthday)
print(diff) # relativedelta(years=+2, months=+7, days=+19) 2岁7个月19天
print(diff.years) # 年
print(diff.months) # 月
print(diff.days) # 日
运行结果:
4、获取接下来每周周几的日期
示例代码:
from dateutil.rrule import rrule, WEEKLY
from datetime import date, datetime
next_wednesday = date(year=2022, month=8, day=20) # 设置下一个周六,2022-08-20
# next_wednesday = datetime(2022, 8, 20)
data = list(rrule(WEEKLY, count=10, dtstart=next_wednesday))
# 上面rrule函数中WEEKLY表示频次,即每周,count表示计算的数据数为10个
# dtstart即起始日 byweekday可以指定MO,TU,WE,TH,FR,SA,SU。即周一到周日。
for one in data:
print(one, '------>', one.strftime('%Y-%m-%d'))
运行结果:
具体更多功能详见源码。
相关文章
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- python数据分析数据标准化及离散化详解
- Python中第三方库Requests库的高级用法详解
- Python中生成器和yield语句的用法详解
- Python回调函数用法实例详解
- Python操作SQLite数据库的方法详解
- [Python] Putting Code on PyPi
- Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?
- python执行系统命令后获取返回值的几种方式集合
- Python中生成器和yield语句的用法详解
- python 排序算法总结及实例详解
- Python 日期和时间_python 当前日期时间_python日期格式化
- 【python cookbook】【数据结构与算法】16.筛选序列中的元素
- Python元组类型详解
- [转]Python 命令行参数和getopt模块详解
- python程序员都在用到5个酷毙的Python工具
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- 已解决Visit python.org to download an earlier version of Python.
- 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建
- 数值积分求解卫星轨道长(Python)
- Python-OpenCV分割图像查枸杞的个数
- 【华为机试真题详解 Python实现】分奖金【2023 Q1 | 100分】
- Python编程:Python2.7的MD5编码问题
- python中5个json库的速度对比
- 使用技巧 | 10个 Python 字典用法详解