Python 日期时间模块详解(datetime)
2023-12-13 17:58:07
文章目录
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 time
dt = 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 - d2
print(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 datetime
now = datetime.now()
# 测试
print(now.strftime('%Y-%m-%d %H:%M:%S'))
print(now.strftime('%Y'))
文章来源:https://blog.csdn.net/qq_34745941/article/details/134793775
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!