time 模块提供了很多与时间相关的类和函数,下面我们介绍一些常用的。
1.1 struct_time 类time 模块的 struct_time 类代表一个时间对象,可以通过索引和属性名访问值。 对应关系如下所示:(tm_sec 范围为 0 ~ 61,值 60 表示在闰秒的时间戳中有效,并且由于历史原因支持值 61)
| 索引 | 属性 | 值 |
| 0 | tm_year(年) | 2022 |
| 1 | tm_mon(月) | 1 ~ 12 |
| 2 | tm_mday(日) | 1 ~ 31 |
| 3 | tm_hour(时) | 0 ~ 23 |
| 4 | tm_min(分) | 0 ~ 59 |
| 5 | tm_sec(秒) | 0 ~ 61 |
| 6 | tm_wday(周) | 0 ~ 6 |
| 7 | tm_yday(一年内第几天) | 1 ~ 366 |
| 8 | tm_isdst(夏时令) | -1、0、1 |
localtime() 表示当前时间,返回类型为 struct_time 对象,示例如下所示:
import time t = time.localtime() print(t) print(t.tm_year) print(t[0])
输出结果:
time.struct_time(tm_year=2022, tm_mon=4, tm_mday=26, tm_hour=21, tm_min=49, tm_sec=54, tm_wday=6, tm_yday=335, tm_isdst=0) 2022 20222 datetime 模块
datatime 模块重新封装了 time 模块,提供了更多接口,变得更加直观和易于调用。
2.1 date 类date 类表示一个由年、月、日组成的日期,格式为:datetime.date(year, month, day)。
-
year 范围为:[1, 9999]
-
month 范围为:[1, 12]
-
day 范围为 [1, 给定年月对应的天数]。
类方法和属性如下所示
| 方法(属性) | 说明 |
| today() | 返回当地的当前日期 |
| fromtimestamp(timestamp) | 根据给定的时间戮,返回本地日期 |
| min | date 所能表示的最小日期 |
| max | date 所能表示的最大日期 |
使用示例如下所示:
import datetime import time print(datetime.date.today()) print(datetime.date.fromtimestamp(time.time())) print(datetime.date.min) print(datetime.date.max)3 calendar 模块
calendar 模块提供了很多可以处理日历的函数。
3.1 常用函数| 方法 | 说明 |
| setfirstweekday(weekday) | 设置每一周的开始(0 表示星期一,6 表示星期天) |
| firstweekday() | 返回当前设置的每星期的第一天的数值 |
| isleap(year) | 如果 year 是闰年则返回 True ,否则返回 False |
| leapdays(y1, y2) | 返回 y1 至 y2 (包含 y1 和 y2 )之间的闰年的数量 |
| weekday(year, month, day) | 返回指定日期的星期值 |
| monthrange(year, month) | 返回指定年份的指定月份第一天是星期几和这个月的天数 |
| month(theyear, themonth, w=0, l=0) | 返回月份日历 |
| prcal(year, w=0, l=0, c=6, m=3) | 返回年份日历 |
Calendar 对象提供了一些日历数据格式化的方法,实例方法如下所示:
| 方法 | 说明 |
| iterweekdays() | 返回一个迭代器,迭代器的内容为一星期的数字 |
| itermonthdates(year, month) | 返回一个迭代器,迭代器的内容为年 、月的日期 |
TextCalendar 为 Calendar子类,用来生成纯文本日历。实例方法如下所示:
| 方法 | 说明 |
| formatmonth(theyear, themonth, w=0, l=0) | 返回一个多行字符串来表示指定年、月的日历 |
| formatyear(theyear, w=2, l=1, c=6, m=3) | 返回一个 m 列日历,可选参数 w, l, 和 c 分别表示日期列数, 周的行数, 和月之间的间隔 |
HTMLCalendar 类可以生成 HTML 日历。实例方法如下所示:
| 方法 | 说明 |
| formatmonth(theyear, themonth, withyear=True) | 返回一个 HTML 表格作为指定年、月的日历 |
| formatyear(theyear, width=3) | 返回一个 HTML 表格作为指定年份的日历 |
| formatyearpage(theyear, width=3, css=‘calendar.css’, encoding=None) | 返回一个完整的 HTML 页面作为指定年份的日历 |



