• python中dateutil库用法详解


    dateutil库是一个处理时间的工具库。本地自带,一般不用再次安装。

    1、直接在某个时间点上直接修改年份、月份等信息。

    示例代码:

    1. from dateutil.relativedelta import relativedelta
    2. from datetime import datetime
    3. now_time = datetime.now()
    4. print(now_time)
    5. # 将当前时间年份增加3年或减少3年,
    6. # alter_year = relativedelta(years=-3)
    7. alter_year = relativedelta(years=3)
    8. # aa = now_time - alter_year
    9. aa = now_time + alter_year
    10. print(aa)
    11. # months, weeks, days, hours, minutes, seconds, microseconds方法同years
    12. """官方文档解释:
    13. years, months, weeks, days, hours, minutes, seconds, microseconds:
    14. Relative information, may be negative (argument is plural); adding
    15. or subtracting a relativedelta with relative information performs
    16. the corresponding arithmetic operation on the original datetime value
    17. with the information in the relativedelta.
    18. """
    19. # 将当前时间年份直接更改为某个具体年份
    20. alter_year = relativedelta(year=2010)
    21. # bb = now_time - alter_year
    22. bb = now_time + alter_year
    23. print(bb)
    24. # month, day, hour, minute, second, microsecond方法同year
    25. """ 官方文档解释:
    26. year, month, day, hour, minute, second, microsecond:
    27. Absolute information (argument is singular); adding or subtracting a
    28. relativedelta with absolute information does not perform an arithmetic
    29. operation, but rather REPLACES the corresponding value in the
    30. original datetime with the value(s) in relativedelta.
    31. """

    运行结果:

    2、日期转换,字符串日期转为datetime

    示例代码:

    1. from dateutil.parser import parse # 日期解析器
    2. print(parse("Jul 15 2022 13:00:36")) # 月份也可全称,如july,January
    3. print(parse('20220717'))
    4. print(parse('2022-07-17'))
    5. print(type(parse('2022-07-17')))

    运行结果:

    3、计算时间差:如计算一个人出生到现在的时间

    示例代码:

    1. from dateutil.relativedelta import relativedelta
    2. from datetime import date
    3. # 1.第一种方式
    4. today = date.today()
    5. print(today)
    6. birthday = date(year=2020, month=1, day=1) # 假设出生日期为2020-1-1
    7. print(birthday)
    8. diffday = (today - birthday) # 今天和出生日期计算相差天数
    9. print(diffday)
    10. print(diffday.days) # 只能计算出天
    11. # 2.第二种方式
    12. # 下面可计算两个日期中间相差几年,几个月和几天
    13. diff = relativedelta(today, birthday)
    14. print(diff) # relativedelta(years=+2, months=+7, days=+19) 2岁7个月19天
    15. print(diff.years) # 年
    16. print(diff.months) # 月
    17. print(diff.days) # 日

    运行结果:

    4、获取接下来每周周几的日期

    示例代码:

    1. from dateutil.rrule import rrule, WEEKLY
    2. from datetime import date, datetime
    3. next_wednesday = date(year=2022, month=8, day=20) # 设置下一个周六,2022-08-20
    4. # next_wednesday = datetime(2022, 8, 20)
    5. data = list(rrule(WEEKLY, count=10, dtstart=next_wednesday))
    6. # 上面rrule函数中WEEKLY表示频次,即每周,count表示计算的数据数为10个
    7. # dtstart即起始日 byweekday可以指定MO,TU,WE,TH,FR,SA,SU。即周一到周日。
    8. for one in data:
    9. print(one, '------>', one.strftime('%Y-%m-%d'))

    运行结果:

    具体更多功能详见源码。

  • 相关阅读:
    神经网络的图像识别技术,语音识别深度神经网络
    Chiplet技术与汽车芯片(二)
    Python中基于Socket实现服务器端和客户端之间的通信
    C++二要素认证,游戏实名认证接口、金融实名认证
    【软件测试】--功能测试2--常用设计测试用例方法
    Halcon 从基础到精通-01- 基本概念
    复习计算机网络——第三章记录(1)
    3D城市模型可视化:开启智慧都市探索之旅
    神经系统图 基本结构图,大脑神经网络结构图片
    论文笔记 A Comprehensive Survey on Graph Neural Networks(GNN综述)
  • 原文地址:https://blog.csdn.net/weixin_44799217/article/details/126444147