一、time模块
1、时间格式
(1)timestamp:时间戳。表示的是从1970年1月1日00:00:00开始按秒计算的值。
(2)struct_time:时间元组。共有九个元素:m_year(年)、tm_mon(月)、tm_mday(日)、tm_hour(时)、tm_min(分)、tm_sec(秒)、
tm_wday(星期数0-6,0为星期一)、tm_yday(一年的第几天)、tm_isdst(是否夏令时)。可以通过索引直接读取时间元组的元素。
(3)format time:格式化时间。格式化符号有:%y(两位数年)、%Y(四位数年)、%m(月)、%d(日)、%H(24小时制0-23)、%I(12小时制小时01-12)、%M(分钟00-59)、%S(秒00-59)、%a(本地简化星期名称)、%A(本地完整星期名称)、%b(本地简化的月份名称)、%B(本地完整的月份名称)、%c(本地相应的日期表示和时间表示)、%j(年内天数)、%p(本地A.M.或P.M.的等价符)、%U(一年中的星期数,星期天为星期的开始)、%w(星期0-6,星期天为星期的开始)、%W(一年中的星期数,星期一为星期的开始)、%x(本地相应的日期表示)、%X(本地相应的时间表示)、%Z(当前时区)。
2、常用函数
(1)asctime(tupletime):根据时间元组(或元组)返回一个表示日期的24个字符的字符串。无参时输出当前日期。
(2)ctime(secs):返回asctime(localtime(secs)),未给参数即asctime()。其中secs为时间戮。
(3)gmtime(secs):根据时间戮secs返回格林威治天文时间(时间元组)。
(4)localtime([secs]):根据时间戮返回当地时间(时间元组)
(5)mktime(tupletime):接受时间元组(或元组)并返回时间戳。
(6)sleep(secs):推迟调用线程的运行秒数。
(7)strftime(fmt,tupletime):接收时间元组并返回以字符串表示的当地时间,格式由fmt决定。
示例:a=localtime();print(strftime("%A",a))
(8)strptime(str,fmt):根据fmt的格式把一个时间字符串解析为时间元组。如: t=strptime("2019-09-30","%Y-%m-%d")
(9)time( ):返回当前时间的时间戳。
3、应用示例
(1)获取当前日期数据
使用time.localtime()函数,即可得到当前系统日期数据。函数的返回值是时间元组。如:
td=localtime() #得到当前系统日期数据(时间元组)
w="一二三四五六日" #星期字符
print(f"今天是{td[0]}年{td[1]}月{td[2]}日 星期{w[td[6]]}")
(2)根据年月日得到日期的星期和一年中的天数
根据年月日得到时间元组。如:t=time.strptime("2022-4-3","%Y-%m-%d")
根据时间元组得到星期:t[6]即是星期数。为[0,6]上的整数,0-6分别表示星期一至星期日。
根据时间元组得到该日期在一年中的天数:t[7]。
二、datetime模块
datetime模块用于处理日期数据,主要用法:
1、得到当前日期
from datetime import date
td=date.today() #当前日期,date对象
(1)date对象主要属性:year,month,day分别表示年、月、日。
(2)date对象主要函数:weekday(星期数。0-6对应星期一至星期日)、timetuple(根据date对象得到时间元组)。
2、得到指定日期的相关信息
from datetime import date
td=date(2021,8,22) #根据年、月、日得到date对象
t=td.timetuple() #根据date对象得到相应的时间元组,主要利用t[6]得到星期数(0-6)、t[7]得到该日期在一年的天数。
三、calendar 模块
calendar模块主要处理日历数据,常用函数有:
1、calendar(year,w=2,l=1,c=6,m=3)
返回字符串格式的年历。m=3表示3个月一行;c为间隔距离;每日宽度间隔为w个字符;每行长度为21*W+18+2*C。l是每星期行数。
2、isleap(year)
闰年判断。是闰年返回True,否则为False。
3、leapdays(y1,y2)
返回在[Y1,Y2)年之间的闰年总数。
4、month(year,month,w=2,l=1)
返回一个多行字符串格式的月历。两行标题,一周一行。每日宽度间隔为w个字符。每行的长度为7* w+6。l是每星期的行数。
5、monthrange(year,month)
返回元组(a,b)。a表示该月第一天是星期几(0-6);b表示该月的天数(28-31)。
6、prcal(year,w=0,l=0,c=6,m=3)
输出年历。效果优于calendar。
7、prmonth(year,month,w=0,l=0)
输出月历。优于month。
8、weekday(year,month,day)
返回给定日期的星期数(0-6)。0-6分别对应星期一至星期日。

