time模块
常用功能
time.time() #获得当前时刻的时间戳------1776515577.5778148
time.localtime() #默认获取当前时间的时间元组,也可将指定时间戳转换为时间元组------time.struct_time(tm_year=2026, tm_mon=4, tm_mday=18, tm_hour=20, tm_min=36, tm_sec=37, tm_wday=5, tm_yday=108, tm_isdst=0)
time.strftime(fomart,tupletime) #接收以时间元组,转换为指定格式时间
eg:time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) #按照指定格式输出当前时间------2026-04-18 20:38:18
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') #把一个时间字符串解析为时间元组,后边的格式要和前边一致
time.asctime([tupletime]) #接受时间元组并返回一个可读的形式
eg:time.asctime(time.localtime()) :Sat Apr 18 20:41:52 2026
time.ctime(参数:时间戳) #将时间戳转换为可读格式
eg: time.ctime(time.time()) :Sat Apr 18 20:49:56 2026
time.mktime(tupletime) # 将时间元组转换为时间戳
其它功能
time.altzone #返回格林威治西部的夏令时地区的偏移秒数,在东为负数
time.perf_counter() # 返回系统运行时间
time.process_time() # 返回进程运行时间
time.gmtime([secs]) #将时间戳返回格林威治天文时间下的时间元组t
time.struct_time #时间元组,time.localtime()返回的就是时间元组
datetime模块
常用功能:
datetime.datetime.now() #获取现在时间------2026-04-18 20:00:12.742352
datetime.datetime.now().date() #获取今天日期------2026-04-18
datetime.date.today() #获取今天日期------2026-04-18
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") #获取指定格式的时间------2026-04-18 20:09:13
datetime.datetime.now().date() + datetime.timedelta(days=2) #当前时间加减指定时间(时、天)------2026-04-20
datetime.timedelta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)
其它功能:
datetime.date.timetuple() #返回对应时间的时间元组
datetime.datetime.now().timetuple() #返回时间元组
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=3, tm_hour=10, tm_min=2, tm_sec=33, tm_wday=3, tm_yday=184, tm_isdst=-1)
datetime.datetime.now().timestamp() #此刻的时间戳,1751509689.607258
datetime.datetime.fromtimestamp(now_timestamp) #将时间戳转换为详细时间 2025-07-03 10:28:09.607258
datetime.combine(date, time, tzinfo=time.tzinfo)
datetime.datetime.strptime(date_string, format) #用于将字符串解析为 datetime 对象,date_string必须为字符串,并且前后格式必须一致
python
date_str_2 = "2023-10-05 14:30:00"
print(type(date_str_2))
format_str_2 = "%Y-%m-%d %H:%M:%S"
dt_obj_2 = datetime.datetime.strptime(date_str_2, format_str_2)
print(f"示例 2 结果: {dt_obj_2}")
print(type(dt_obj_2))
date_str_3 = "05/Oct/2023 02:30 PM"
format_str_3 = "%d/%b/%Y %I:%M %p"
dt_obj_3 = datetime.datetime.strptime(date_str_3, format_str_3)
print(f"示例 3 结果: {dt_obj_3}")
#输出
"""
<class 'str'>
示例 2 结果: 2023-10-05 14:30:00
<class 'datetime.datetime'>
示例 3 结果: 2023-10-05 14:30:00
"""
格式化符号、时间元组符号
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 当前时区的名称
%% %号本身
stuct_time(时间元组)格式
序号 属性 值
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
日历模块
常用内置函数:
1)calendar.weekday(year,month,day) #获取指定日期是星期几(0(星期一)到6(星期日))
2)calendar.isleap(year) #判断是否为闰年,是闰年返回 True,否则为 False
3)calendar.leapdays(y1,y2) #返回在Y1,Y2两年之间的闰年总数
4)calendar.month(year,month) #返回指定年月的日历
5)calendar.monthrange(year,month) #返回指定年月,第一个参数是 这月的第一天是星期几,第二参数是有多少天
6)calendar.monthcalendar(year,month) #获取月份日历矩阵
常用示例
1、打印文本格式月历
python
cal = calendar.TextCalendar(calendar.MONDAY)
print("\n2024年5月日历:")
print(cal.formatmonth(2024, 5))
#输出:
"""
2024年5月日历:
May 2024
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 31
"""
2、迭代获取当月所有日期 (包含前后月填充)
python
print("\n迭代日期示例:")
for day in calendar.Calendar().itermonthdates(2024, 5):
if day.month == 5:
print(day, end=" ")
#输出:
"""
迭代日期示例:
2024-05-01 2024-05-02 2024-05-03 2024-05-04 2024-05-05 2024-05-06 2024-05-07 2024-05-08 2024-05-09 2024-05-10 2024-05-11 2024-05-12 2024-05-13 2024-05-14 2024-05-15 2024-05-16 2024-05-17 2024-05-18 2024-05-19 2024-05-20 2024-05-21 2024-05-22 2024-05-23 2024-05-24 2024-05-25 2024-05-26 2024-05-27 2024-05-28 2024-05-29 2024-05-30 2024-05-31
"""