2018 monthly calendar
- 格式:pdf
- 大小:17.31 KB
- 文档页数:12


Python常⽤⽇期处理--calendar与dateutil模块的使⽤本⽂紧承上⼀篇,因制于篇幅的⼤⼩需求才临时分⽴新篇,这⾥要简单提到 calendar 和 dateutil 模块的使⽤,其中 calendar 是 Python 内置的。
相⽐于上⼀篇⽽⾔,此处主旨会更明确⼀些,只记录三个应⽤案例,分别是⽤ dateutil 灵活的解析 datetime 字符串给定起始⽇期后的连续⽇期给定起始⽇期后连续的⽉末⽇期dateutil 灵活的解析 datetime 字符串使⽤ Python 内容的 date 或 datetime, 构造它们的实例时需要逐个的传⼊年⽉⽇或时分秒,或者要调⽤fromisoformat() ⽅法解析严格的字符串表⽰格式。
⽽ dateutil.parser 的 parse() ⽅法就显得特别的聪明和随意,它可以智能的解析更丰富的字符串表⽰⽅式。
详细的⽀持格式请参考官⽅⽂档的,恐怕官⽅⽂档也未列举完全,只要觉得合理的时间字符串就可以尝试去解析。
下⽅是⼀些例⼦>>> from dateutil.parser import parse>>>>>> parse('2018-02-28')datetime.datetime(2018, 2, 28, 0, 0)>>> parse('2018-02-28T12:08:23')datetime.datetime(2018, 2, 28, 12, 8, 23)>>> parse('2018-02-28T12:08:23PM') # 下午datetime.datetime(2018, 2, 28, 12, 8, 23)>>> parse('2018-02-28T12:08:23+05:00') # 加上时区偏移datetime.datetime(2018, 2, 28, 12, 8, 23, tzinfo=tzoffset(None, 18000))>>> parse('Jan 18, 2018')datetime.datetime(2018, 1, 18, 0, 0)>>> parse('Oct. 10, 2008 10:43am CST') # 加上时区datetime.datetime(2008, 10, 10, 10, 43, tzinfo=tzlocal())>>> parse('Wed Jul 08 17:08:48 GMT 2009')datetime.datetime(2009, 7, 8, 17, 8, 48, tzinfo=tzutc())>>> parse("09-25-2003")datetime.datetime(2003, 9, 25, 0, 0)>>> parse("13-02-2003") # 第⼀段⼤于 12 不可能是⽉份,所以推断为⽇期datetime.datetime(2003, 2, 13, 0, 0)>>>parse('09:23pm')datetime.datetime(2019, 4, 30, 21, 23)parser.parse() 返回的总是 datetime 类型,这也很好理解,因为 datetime 有完整的时间信息,可由此得到 date 或 time 实例。