Python时间模块之datetime模块
目录
简介
函数介绍及运用
date:日期类
1.获取当前时间
2.日期对象的属性
3.date类中时间和时间戳的转换:
4.修改日期使用replace方法
time:时间类
time类操作
datetime:日期时间类
timedelta:时间间隔,即两个时间点之间的时间长度
简介
在项目开发中做功能经常会用到关于时间的操作。比如会员过期的定时任务,一些代码的延迟执行。在python中比较常用的三个时间模块分别是:time、calendar、datetime模块。今天介绍的是datetime模块。
在python中表示时间的格式有三种:时间戳、元组、格式化时间。与time模块类似,datetime模块也能够将datetime类型转换成这三种类型。
函数介绍及运用
date:日期类
常用属性:year/month/day
1.获取当前时间
import datetime today = datetime.datetime.today() today1 = datetime.datetime.now()
结果:

2.日期对象的属性
import datetime
# 这两种都可以
today = datetime.datetime.today()
# today1 = datetime.datetime.now()
print("当前日期:", today) # 当前日期
print("当前日期(字符串):", today.ctime()) # 返回日期的字符串
print("时间元组信息:", today.timetuple()) # 当前日期的时间元组信息
print("年:", today.year) # 返回today对象的年份
print("月:", today.month) # 返回today对象的月份
print("日:", today.day) # 返回today对象的日
print("星期:", today.weekday()) # 0代表星期一,类推
print("公历序数:", today.toordinal()) # 返回公历日期的序数
print("年/周数/星期:", today.isocalendar()) # 返回一个元组:一年中的第几周,星期几
结果:

3.date类中时间和时间戳的转换:
(1)toordinal方法返回的公历序数转化为日期
import datetime today = datetime.datetime.now() # 此方法的返回类型是一个数字,它是该日期在公历中的序数。 num = today.toordinal() print(num) print(today.fromordinal(num))
结果:

(2)time模块时间戳转化日期
import datetime import time nowtime = time.time() print(nowtime) nowdate = datetime.date.fromtimestamp(nowtime) print(nowdate)
结果:

(3)格式化时间,格式参照time模块中的strftime方法
import datetime
today = datetime.date.today()
print(today)
print(today.strftime("%Y.%m.%d"))
print(today.strftime("%Y:%m:%d"))
print(today.strftime("%Y.%m.%d %H:%M:%S"))
结果:

4.修改日期使用replace方法
import datetime # 当前日期 date1 = datetime.date.today() print(date1) # 指定日期 date2 = datetime.date(2022, 10, 7) print(date2) # 不带参数修改日期 date3 = date2.replace(2022, 10, 8) print(date3) # 带参数修改日期 date4 = date2.replace(month=12, day=9) print(date4)
结果:

time:时间类
常用属性:hour/minute/second/microsecond
time类生成time对象,包含hour、minute、second、microsecond属性
time类操作
import datetime # time对象 print(datetime.time) # 格式化time time1 = datetime.time(18, 30, 59, 59) print(time1) print(time1.hour) print(time1.minute) print(time1.second) print(time1.microsecond) # 微秒
结果:

datetime:日期时间类
datetime类包含date类和time类的全部信息
import datetime
print(datetime.datetime.today())
print(datetime.datetime.now())
print(datetime.datetime.utcnow()) # 返回当前UTC日期和时间的datetime对象
print(datetime.datetime.fromtimestamp(1670582201)) # 时间戳的datetime对象
print(datetime.datetime.fromordinal(738498))
print(datetime.datetime.strptime("2020-12-25", "%Y-%m-%d"))
结果:

timedelta:时间间隔,即两个时间点之间的时间长度
timedelta对象表示的是一个时间段,即两个日期date或者日期时间datetime之间的差;支持参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds
timedelta 操作
import datetime day = datetime.date.today() # 当前日期 print(day) # 增加7天后日期 print(day+datetime.timedelta(days=7)) # 时间操作 now = datetime.datetime.now() # 当前日期时间 print(now) # 增加8小时 print(now+datetime.timedelta(hours=8)) # 增加30分钟 print(now+datetime.timedelta(minutes=30)) # 增加30秒钟 print(now+datetime.timedelta(seconds=30)) # 减去一星期 print(now-datetime.timedelta(weeks=1))
结果:

本文介绍了datetime模块的使用,不会使用时间或者对时间操作陌生的小伙伴,可以参考时间模块(time,calendar,datetime)博客,来实现与其他三种时间格式的转换,与日期的操作。
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/a8291452e6.html
