Python 日期时间模块详解(datetime)

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'))
  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼丸丶粗面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值