文章目录
- 1 概述
- 1.1 datetime 类图
- 1.2 类描述
- 2 常用方法
- 2.1 获取当前日期时间:now()、today()、time()
- 2.2 日期时间格式化:strftime()
- 2.3 日期时间大小比较:>、=、<
- 2.4 日期时间间隔:-
- 3 扩展
- 3.1 Python 中日期时间格式化符号
1 概述
1.1 datetime 类图

1.2 类描述
| 常用类名 | 描述 | 取值 |
|---|---|---|
datetime | 日期时间 | 日期 + 时间 |
date | 日期 | year(年)、month(月)、day(日) |
time | 时间 | hour(时)、minute(分)、second(秒)、microsecond(微妙)、tzinfo(时区) |
timedelta | 时间间隔 |
2 常用方法
2.1 获取当前日期时间:now()、today()、time()
from datetime import datetime
from datetime import date
from datetime import time# datetime 子类:now()
now = datetime.now()
print(f'当前日期时间:{now}')
print(f'当前日期:{now.date()}')
print(f'当前时间:{now.time()}')
print('--------------------------')# date 子类:today()
today = date.today()
print(f'当前日期:{today}')
print(f'当前年:{today.year}')
print(f'当前月:{today.month}')
print(f'当前日:{today.day}')
print('--------------------------')# time 子类:
t = time(20, 13, 14)
print(f'当前时间:{t}')
print(f'当前时:{t.hour}')
print(f'当前分:{t.minute}')
print(f'当前秒:{t.second}')
print(f'当前微妙: {t.microsecond}')
print(f'当前时区:{t.tzinfo}')
执行结果(参考):
当前日期时间:2023-12-07 11:15:52.487747
当前日期:2023-12-07
当前时间:11:15:52.487747
--------------------------
当前日期:2023-12-07
当前年:2023
当前月:12
当前日:7
--------------------------
当前时间:20:13:14
当前时:20
当前分:13
当前秒:14
当前微妙: 0
当前时区:None
2.2 日期时间格式化:strftime()
from datetime import datetime
from datetime import date
from datetime import timedt = datetime(2023, 12, 8, 20, 13, 14)
d = date(2023, 12, 8)
t = time(20, 13, 14)# 格式化
dt_format = dt.strftime('%Y-%m-%d %H:%M:%S')
d_format = d.strftime('%Y-%m-%d')
t_format = t.strftime('%H:%M:%S')print(f'日期时间:{dt_format}')
print(f'日期:{d_format}')
print(f'时间:{t_format}')
2.3 日期时间大小比较:>、=、<
from datetime import datetime# 以下以 datetime 为例,其它子类同理
d1 = datetime(2023, 12, 8, 20, 13, 14)
d2 = datetime(2023, 12, 8, 20, 13, 10)# 日期比较,返回值布尔型
print(f'd1 > d2:{d1 > d2}')
print(f'd1 = d2:{d1 == d2}')
print(f'd1 < d2:{d1 < d2}')print(f'd1 >= d2:{d1 >= d2}')
print(f'd1 <= d2:{d1 <= d2}')
print(f'd1 != d2:{d1 != d2}')# 等价的有
print('-------------------------')
print(f'd1 大于 d2:{d1.__gt__(d2)}')
print(f'd1 等于 d2:{d1.__eq__(d2)}')
print(f'd1 小于 d2:{d1.__lt__(d2)}')print(f'd1 大于等于 d2:{d1.__ge__(d2)}')
print(f'd1 小于等于 d2:{d1.__le__(d2)}')
print(f'd1 不等于 d2:{d1.__ne__(d2)}')
2.4 日期时间间隔:-
from datetime import datetime
from datetime import date
from datetime import time# 以下以 datetime 为例,其它子类同理
d1 = datetime(2023, 12, 8, 20, 13, 14)
d2 = datetime(2023, 12, 8, 20, 13, 10)d3 = d1 - d2
# d1.__sub__(d2) # 等价于 d1 - d2print(d3) # timedelta 类型数据
print(d3.days) # int 类型
print(d3.seconds) # int 类型
3 扩展
3.1 Python 中日期时间格式化符号
| 格式符 | 含义 |
|---|---|
%Y | 年(0000-9999) |
%y | 年(00-99) |
%m | 月(01 - 12) |
%d | 日(0-31) |
%H | 时(00-23) |
%I | 时(01-12) |
%M | 分(00-59) |
%S | 秒(00-59) |
%a | 星期的简称 |
%A | 星期的全称 |
%b | 月份的简称 |
%B | 月份的全称 |
%c | 日期和时间 |
%x | 日期(不含时间) |
%X | 时间(不含日期) |
from datetime import datetimenow = datetime.now()# 测试
print(now.strftime('%Y-%m-%d %H:%M:%S'))
print(now.strftime('%Y'))