时间模块
Python中,关于时间模块有四个
1、calendar 日历模块
2、time 时间模块
3、datetime 日期时间模块
4、timeit 时间检测模块
时间戳:从1970年1月1日0时0分0秒开始计时,单位为秒,也叫Linux时间戳
UTC时间:世界协调时间,特指格林尼治天文台所在位置的时间,也叫格林尼治时间
中国为东八区,和UTC时间差了8小时,即多了8小时
夏令时:夏时制,另译夏令时间(英语:Summer time),又称日光节约时制、日光节约时间(英语:Daylight saving time),
是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。
一般在天亮较早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家规定不同。
时间元组:struct_time,用于表示时间格式的元组数据,time模块的主要方式,Python专有,不是标准的元组数据
(tm_year, tm_mon, tm_day, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
tm_year: 年(四位数)
tm_mon: 月 1~12
tm_mday: 日 1~31
tm_hour: 时 0~23
tm_min: 分 0~59
tm_sec: 秒 0~61;60为闰秒,61为历史保留
tm_wday: 周几 0~6 代表 周一至周日
tm_yday: 一年的第几天 1~366
tm_isdst: 夏令时,0代表不是,其他值是
一、calendar 日历模块
需要提前导入该模块:import calendar
1、calendar()
语法:calendar.calendar(theyear, w=2, l=1, c=6, m=3)
theyear:想要获取的年份,四位数字
w参数:两个日期之间的建个字符长度,默认值为2
l参数:一个周占用几行高度,默认值为1
c参数:两个月份之间的空白间隔,默认值为6
m参数:一行显示几个月,默认值为3
功能:获取某年的所有日历
1 import calendar 2 3 year = calendar.calendar(2018) 4 print(year) 5 ---> 6 2018 7 January February March 8 Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 9 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11 11 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18 12 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25 13 29 30 31 26 27 28 26 27 28 29 30 31 14 。。。。。。
15 。。。。。。
2、month()
语法:calendar.month(theyear, themonth, w=0, l=0)
w, l 参数同上
功能:获取指定月份的日历
1 import calendar 2 3 mon = calendar.month(2018, 3) 4 print(mon) 5 ---> 6 March 2018 7 Mo Tu We Th Fr Sa Su 8 1 2 3 4 9 5 6 7 8 9 10 11 10 12 13 14 15 16 17 18 11 19 20 21 22 23 24 25 12 26 27 28 29 30 31
3、monthcalendar()
语法:calendar.monthcalendar(theyear, themonth)
功能:获取制定月份的日历的矩阵格式
返回值:是一个嵌套列表,一周为一个list元素
1 import calendar 2 3 mon = calendar.monthcalendar(2018, 3) 4 print(mon) 5 --->[[0, 0, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25], [26, 27, 28, 29, 30, 31, 0]] 6 # 其中,一个月为一个list,其中元素以一周为一个list,在月初和月末的0元素,代表当天是上月或下月的日期,周列表中,从周一开始排列到周日
4、isleap()
语法:calendar.isleap(year)
功能:判断检测指定的年份是否为闰年
1、年份不能被100整除,但是可以被4整除的
2、年份能被100整除,且必须能被400整除的
1 import calendar 2 3 print(calendar.isleap(2018)) 4 --->False 5 6 print(calendar.isleap(2012)) 7 --->True
5、leapdays()
语法:calendar.leapdays(y1, y2)
y1-y2区间内,包含y1,不包含y2
功能:获取指定年份之间的闰年的个数
1 import calendar 2 3 num = calendar.leapdays(2000, 2020) 4 print(num) 5 --->5 6 # 2000-2020年一共6个闰年,但是因为不包含结尾年份,num = 5 7 8 num = calendar.leapdays(2000, 2021) 9 print(num) 10 --->6
6、monthrange()
语法:calendar.monthrange(year, month)
功能:获取某个月份是周几开始,以及当月天数
返回值:一个tuple,第一位数字代表从周几开始,第二位代表天数
0~6 代表 周1~周日
1 import calendar 2 3 4 print(calendar.monthrange(2018, 3)) 5 --->(3, 31) 6 # 2018年3月,从周四开始,共31天
7、weekday()
语法:calendar.weekday(year, month, day)
功能:根据年月日计算当天是周几
返回值:整型 0~6 代表周1~周日
1 import calendar 2 3 4 print(calendar.weekday(2018, 3, 12)) 5 --->0
8、timegm()
语法:calendar.timegm(time_tuple)
time_tuple:时间元组
功能:将时间元组转换为时间戳
1 import calendar 2 3 ttp = (2018, 3, 12, 22, 16, 30, 0, 0, 0) 4 # 将2018年3月12日22时16分30秒转换为时间戳 5 print(calendar.timegm(ttp)) 6 --->1520892990