Python处理时间的标准库之datetime库

一、datetime标准库的类

  • datetime.date
  • datetime.time
  • datetime.datetime
  • datetime.timedelta

二、date类

import datetime
import time

# 生成今天日期
d = datetime.date.today()
print(d, type(d))
# 按照参数生成日期
d = datetime.date(2022, 8, 24)
print(d, type(d))
# 用时间戳生成日期
d = datetime.date.fromtimestamp(time.time())
print(d, type(d))

运行结果:
在这里插入图片描述

# 类属性
print(datetime.date.min)
print(datetime.date.max)
print(datetime.date.resolution) # timedelts

运行结果:
在这里插入图片描述

# 实例属性
print(d.year)
print(d.day)
print(d.month)

运行结果:
在这里插入图片描述

# 常用的实例方法
# datetime.date对象 转化为结构化时间对象
print(d.timetuple())

# 其他方法
# replace(year, month, day)
print(d.replace(2022))
print(d.replace(d.year, 9))
print(d.replace(day=20))
print(d.replace(d.year, d.month, 20))

# d.toordinal() 从0001-01-01到现在的天数
# d.weekday() 0代表周一
# d.isoweekday() 1代表周一
# d.isoformat()  标准日期格式的返回
# d.strftime("%Y年%m月%d日")

print("{:=^50s}".format("datetime.time"))

运行结果:
在这里插入图片描述

二、time类

import datetime

# time
# 生成时间
t = datetime.time(15, 10, 45, 8888)
print(t, type(t))

# 类方法
print(datetime.time.min)
print(datetime.time.max)
print(datetime.time.resolution)

# 实例属性
print(t.hour)
print(t.minute)
print(t.second)
print(t.microsecond)

# 其他方法
print(t.isoformat())
print(t.strftime("%H时%M分%S秒 %f微秒"))

运行结果:
在这里插入图片描述

三、datetime类

import datetime
import time


dt = datetime.datetime(2020, 8, 30, 12, 2, 34, 8888)
print(dt, type(dt))
dt = datetime.datetime.today()
print(dt, type(dt))
dt = datetime.datetime.now()
print(dt, type(dt))

dt = datetime.datetime.utcnow()
print(dt, type(dt))


# 时间戳 -》 datetime
dt = datetime.datetime.fromtimestamp(time.time())
print(dt, type(dt))
# 字符串 -》 datetime
dt = datetime.datetime.strptime("2021-01-01 08:59:00", "%Y-%m-%d %H:%M:%S")
print(dt, type(dt))
# 结构化对象 -》 datetime
print(datetime.datetime.fromtimestamp(time.mktime(time.localtime())))
# date+time -> datetime
dt = datetime.datetime.combine(datetime.date(2021, 12, 11), datetime.time(15, 10, 45, 8888))
print(dt, type(dt))

# 属性
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)

# replace
print(dt.replace(second=57, day=20))

# datetime -> 结构化时间对象
print(dt.timetuple())
# datetime -> 时间戳
print(dt.timestamp())
# datetime -> 格式化字符串
print(dt.strftime('%Y年%m月%d日 %H时%M分%S秒 %f微秒'))


运行结果:
在这里插入图片描述

四 、datetime与其它表示方式的转换

在这里插入图片描述

五 、timedelta类

import datetime
import time

#  datetime.timedelta
# class datetime.timedelta(days=0, second=0, microseconds=0, milliseconds=0, hours=0, weeks=0)
# 生成时间差
td = datetime.timedelta(days=10, hours=5)
print(td, type(td))
td = datetime.timedelta(days=-5, hours=5)
print(td, type(td))
td = datetime.timedelta(days=-5, hours=-8)
print(td, type(td))
td = datetime.timedelta(weeks=2)
print(td, type(td))

# 计算目标日期
dt = datetime.datetime.today()
print("现在是{}".format(dt.strftime("%Y年%m月-%d日 %H时%M分%S秒")))
delta = datetime.timedelta(days=10)
target = dt + delta
print("十天后是{}".format(target.strftime("%Y年%m月-%d日 %H时%M分%S秒")))

# 计算时间差
dt1 = datetime.datetime.today()
dt2 = datetime.datetime.utcnow()
td = dt1 - dt2
print("我们与UTC时间的差是:{:.0f}小时".format(td.seconds/3600))

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值