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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。