常用模块
- calendar
- time
- datetime
- timeit
- os
- shutil
- zip
- math
- string
- 上述所有模块使用理论上都应该先导入,string是特例
- calendar, time, datetime的区别参考中文意思
calendar
- 跟日历相关的模块
#使用之前先导入
import calendar
#calendar: 获取一年的日历字符串
#参数
# w = 每个日期之间的间隔字符数
# l = 每周所占用的行数
# c = 每个月之间的间隔字符数
#cal2 = calendar.calender(2019, w=2,l=1,c=6)
#print(cal2)
cal1 = calendar.calendar(2019)
print(cal1)
#isleap 判断某一年是否是闰年
print(calendar.isleap(2018)) #输出结果: False
#获取指定年份之间的闰年的个数,包括前面年份,不包括后面年份
print(calendar.leapdays(1999,2019)) #输出结果: 5
#month() 获取某个月的日历字符串
#格式 calendar.month(年,月)
#回值: 月日历的字符串
mcal = calendar.month(2019, 11)
print(mcal)
'''
输出结果:
November 2019
Mo Tu We Th Fr Sa Su
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
'''
# monthrange 获取一个月的周几开始,以及该月的天数
# calendar.monthrange(年,月)
# 回值: 元组(周几开始,总天数)
# 注意: 周默认0-6 表示周一到周天
w, t = calendar.monthrange(2019,11)
print(w)
print(t)
'''
输出结果:
4
30
'''
# monthcalendar() 返回一个月每天的矩阵列表
# calendar.monthcalendar(年, 月)
# 回值: 二级列表
# 注意: 矩阵中没有的天数用0表示
m = calendar.monthcalendar(2019, 10)
print(type(m))
print(m)
'''
输出结果:
<class 'list'>
[[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, 0, 0]]
'''
#prcal 直接打印日历, print calendar的缩写
calendar.prcal(2019)
#prmonth 直接打印当月日历
#格式: calender.prmonth(年,月)
#返回值: 无
calendar.prmonth(2019, 11)
'''
输出结果:
November 2019
Mo Tu We Th Fr Sa Su
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
'''
# weekday() 获取周几
# 格式: calendar.weekday(年,月,日)
# 返回值: 周几对应的数字
print(calendar.weekday(2019,11,6)) #输出结果: 2
time 模块 time模块详细信息
时间戳
- 一个时间表示,根据不同语言,可以是整数或者浮点数
- 是从1970年1月1日0点0分0秒到现在经历的秒数
- 如果表示的1970年以前或者太遥远的未来,可能出现异常
- 32位操作系统能够支持到2038年
UTC时间
- UTC又称为时间协调时间,以英国格林尼治天文所在地区的时间作为参考时间,也称为世界标准时间.
- 中国时间是 UTC+8 东八区
夏令时
- 就是在夏天的时候把标拨快1个小时,督促大家早睡早起,每天变成25个小时,本质没变,还是24小时
时间元祖
- 一个包含时间内容的普通元祖
0 年 tm_year 2008
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 (60或61 是闰秒)
6 一周的第几日 tm_wday 0到6 (0是周一)
7 一年的第几日 tm_yday 1 到 366(儒略历)
8 夏令时 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜
# 需要单独导入:
import time
#时间模块的属性
# timezone: 当前时区和UTC时区相差的秒数,在没有夏令营时的情况下的间隔
print(time.timezone) # 输出结果: -28800
#time.altzone: 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
print(time.altzone) #输出结果: -32400
#daylight: 测当前是否夏令营状态, 0表示不是
print(time.daylight) #输出结果: 0
#得到时间戳
print(time.time()) #输出结果: 1573020511.09916
#localtime: 得到当前的时间结构
#可以通过点号操作符得到相应的属性元素的内容
t = time.localtime()
print(t.tm_mday) #输出结果: 6
#time.asctime
#接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
t = time.localtime()
tt = time.asctime(t)
print(tt) #输出结果: Wed Nov 6 14:35:27 2019
#time.ctime: 获取字符串化的当前时间, 不需要通过localtime来获取一次
print(time.ctime()) #输出结果: Wed Nov 6 14:35:27 2019
#time.mktime(tupletime): 接受时间元组并返回时间戳(1970纪元后经过的浮点秒数).
lt = time.localtime()
ts = time.mktime(lt)
print(ts) #输出结果: 1573022397.0
#s time.sleep(secs): 推迟调用线程的运行,secs指秒数。
for i in range(10):
print(i)
time.sleep(1)
'''
输出结果:
每隔一秒打印一个
0
1
2
3
4
5
6
7
8
9
'''
strftime 将时间元祖转化为自定义的字符串格式
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
datetime 模块 datetime官方描述
- datetime 提供日期和时间的运算和表示