python-time、datetime、calendar

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 
"""
相关推荐
m0_747854522 小时前
c++怎么在写入文本文件时自动将所有换行符统一为Unix风格【详解】
jvm·数据库·python
qq_189807032 小时前
mysql查询执行过程中如何追踪耗时_使用PROFILE分析指令周期
jvm·数据库·python
2401_835956812 小时前
如何监控表空间自动扩展_DBA_DATA_FILES中的MAXBYTES分析
jvm·数据库·python
Polar__Star2 小时前
如何配置分区表的行迁移_ENABLE ROW MOVEMENT允许更新分区键跨区移动
jvm·数据库·python
weixin_580614002 小时前
JavaScript中模板字符串处理多行文本的排版优势
jvm·数据库·python
2401_837163892 小时前
SQL利用窗口函数实现轻量级报表设计_实战技巧
jvm·数据库·python
m0_514520572 小时前
如何为禁用按钮添加点击提示信息
jvm·数据库·python
2301_773553622 小时前
Vue.js监听器watch中deep深度监听与immediate立即执行配置
jvm·数据库·python
刘~浪地球2 小时前
当AI开始“理财“:智能投顾是帮你赚钱还是割韭菜?
人工智能·python·机器学习