datetime和calendar都是用于时间的处理,只不过calendar主要是用于日期方面的处理,而datetime相对于time库又更高级,为我们提供了很多便利的函数,下面就让我们来了解一下这两个库吧。
1、datetime
datetime库提供了一系列由简单到复杂的时间处理方法,它可以从系统中获得时间,并以用户选择的格式输出,datetime库以格林威治时间为基础,每天由3600*24秒精准定义。该库包括两个常量:datetime.MINYEAR与date.MAXYEAR,分别表示datetime所能表示的最小、最大年份,值分别为1与9999。
datetime提供多种日期和时间的表达方式:
时间日期表达式 | 描述 |
---|---|
datetime.date | 日期表示类,可以表示年、月、日 |
datetime.time | 时间表示类,可以表示小时、分钟、秒、毫秒等 |
datetime.datetime | 日期和时间表示的类,功能覆盖date和time类 |
datetime.timedelta | 与时间间隔有关的类 |
datetime.tzinfo | 与时区有关的信息表示类 |
- 获取当前日期和时间对象
datetime.now()
- 获取当前日期和时间对应的UTC(世界标准时间)时间对象
datetime.utcnow()
datetime()构造时间日期的方法如下:
datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0)
可以精确到微秒(0~1000000) - 为了区别datetime库名,采用someday代替生成datetime对象,datetime类的常用属性
属性 | 描述 |
---|---|
someday.min | 固定返回datetime的最小时间对象datetime(1,1,1,0,0) |
someday.max | 固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,59,999999) |
someday.year | 返回someday包含的年份 |
someday.month | 返回someday包含的月份 |
someday.day | 返回someday包含的日期 |
someday.hour | 返回someday包含的小时 |
someday.minute | 返回someday包含的分钟 |
someday.second | 返回someday包含的秒钟 |
someday.microsecond | 返回someday包含的微秒值 |
- datetime常用的时间格式方法
属性 | 描述 |
---|---|
someday.isoformat() | 采用IOS 8601标准显示时间 |
someday.isoweekday() | 根据日期计算星期后返回1~7,对应星期一到星期日 |
someday.strftime(format) | 根据格式化字符串format进行格式显示的方法 |
strftime()方法的格式控制符在另一篇博客标准库time中有详细介绍
2.calendar库
calendar为我们提供了与日历有关的模块,我们可以利用calendar创建日历表。系统默认会使用欧洲惯例,即以星期一开始,用0表示,星期日结束,以6结束。下面就来了解一下calendar相关模块的使用。
- calendar.calendar()
返回指定年份的字符串
import calendar
calendar.calendar(2019)
############返回结果#################
2019
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23