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 页面作为指定年份的日历