1 time 模块
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
2022
2 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) | 返回年份日历 |
3.2 Calendar 类
Calendar 对象提供了一些日历数据格式化的方法,实例方法如下所示:
方法 | 说明 |
iterweekdays() | 返回一个迭代器,迭代器的内容为一星期的数字 |
itermonthdates(year, month) | 返回一个迭代器,迭代器的内容为年 、月的日期 |
3.3 TextCalendar 类
TextCalendar 为 Calendar子类,用来生成纯文本日历。实例方法如下所示:
方法 | 说明 |
formatmonth(theyear, themonth, w=0, l=0) | 返回一个多行字符串来表示指定年、月的日历 |
formatyear(theyear, w=2, l=1, c=6, m=3) | 返回一个 m 列日历,可选参数 w, l, 和 c 分别表示日期列数, 周的行数, 和月之间的间隔 |
3.4 HTMLCalendar类
HTMLCalendar 类可以生成 HTML 日历。实例方法如下所示:
方法 | 说明 |
formatmonth(theyear, themonth, withyear=True) | 返回一个 HTML 表格作为指定年、月的日历 |
formatyear(theyear, width=3) | 返回一个 HTML 表格作为指定年份的日历 |
formatyearpage(theyear, width=3, css=‘calendar.css’, encoding=None) | 返回一个完整的 HTML 页面作为指定年份的日历 |