美文网首页
Python小结_时间函数

Python小结_时间函数

作者: 梦游的猫头鹰 | 来源:发表于2021-02-18 08:56 被阅读0次

    主要是对dateutil模块做个小结,参考资料主要是资料1和官方文档,感谢原作者。

    之所以只对dateutil模块总结,是因为dateutil是高级封装包,更加友好,对数据分析人员和建模人员来说更加易用,基本能解决日常的大部分场景。

    dateutil模块主要有两个函数,parser和rrule,其中parser是根据字符串解析成datetime,而rrule则是根据定义的规则来生成datetime。

    1、parser

    from dateutil.parser import parse

    parse("2018-10-21")
    parse("20181021") #  datetime.datetime(2018, 10, 21, 0, 0)

    parse("21/10")
    #  ValueError: month must be in 1..12

    parse("Mar 15 2018") # 英文也能识别

    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)

    wkst:周开始时间,interval:间隔,count:指定生成多少个,byxxx:指定匹配的周期,如byweekday=(MO,TU)则只有周一周二的匹配。

    from dateutil import rrule

    # 间隔一天生成时间
    list(rrule.rrule(rrule.DAILY,interval=2,dtstart=parse('2018-11-1'),until=parse('2018-11-5')))

    # 只包含周六、周日的。
    list(rrule.rrule(rrule.DAILY,byweekday=(rrule.SA,rrule.SU),dtstart=parse('2018-11-1'),until=parse('2018-11-5')))

    # 计算时间差
    rrule.rrule(rrule.MONTHLY,dtstart=parse('2018-3-15'),until=parse('2018-11-20')).count()
    9

    前一个月为m月,后一个月为n月,当日期不满整月时,差的月数按n-m算,当日期满整月后,差的月数按n-m+1算。

    其实,python还有一个专门的日历的包calendar,有兴趣的朋友可以看看,也简单的很。

    3、常用操作

    当前时间

    date = DateUtil.date() #  Date

    now = DateUtil.now() #  当前时间字符串,格式:yyyy-MM-dd HH:mm:ss

    today= DateUtil.today() #  当前日期字符串,格式:yyyy-MM-dd

    获取细分时间,如年、月等,DateUtil.year(date)。

    进行时间偏移的计算,newDate2 = DateUtil.offsetDay(date,3)。

    年龄计算,DateUtil.ageOfNow("1990-01-30")

    附,参考资料:

    1、Python时间处理-dateutil模块,https://www.jianshu.com/p/f29dddce3a9a

    相关文章

      网友评论

          本文标题:Python小结_时间函数

          本文链接:https://www.haomeiwen.com/subject/volgxltx.html