本文共 2695 字,大约阅读时间需要 8 分钟。
前言:datetime模块一般用来对时间进行计算,比如现在的两小时后是什么时间,几年几月,2050年的3月1日的前一天是几月几日等等。
在正题开始之前我先让大家明白闰年和平年是怎么计算的。
搞清楚datetime模块需要清楚就需要知道datetime中的四大类
time:时间类 date:日期类 datetime:日期时间类 timedelta:时间变化类
一般传入三个参数,hour小时,minute分钟,second秒,还有microsecond微秒,但一般不传入。
datetime.time(hour, minute, second)
hour = datetime.time(hour=10, minute=20, second=40)print(type(hour))print(hour)结果# 说明我们实例化了一个datetime.time类10:20:40
查看这个类具有哪些方法和属性
time = datetime.time(hour=10, minute=20, second=40)print(time)# 格式化时间对象 str类型print(time.strftime('%H|%M|%S'))# 小时 int类型print(time.hour)# 分钟 int类型print(time.minute)# 秒 int类型print(time.second)结果10:20:4010|20|40102040
传入三个参数:年,月,日
datetime.date(year, month, day)
date = datetime.date(year=2020, month=12, day=20)print(type(date))print(date)结果# 实例化一个date对象2020-12-20
日期类与时间类的方法类似,这里就不再演示
一般传入6个参数,年,月,日,时,分,秒
datetime.datetime(year, month, day, hour, minute, second)date_time = datetime.datetime(2000, 7, 4, 20, 30, 30)print(type(date_time))print(date_time)结果# 实例化一个datetime对象2000-07-04 20:30:30
具有的属性和方法
date_time = datetime.datetime(2000, 7, 4, 20, 30, 30)print(date_time.replace(year=2010, day=3)) # 替换时间日期date = date_time.date() # 获取日期对象,与上面的日期对象一样print(type(date)) time = date_time.time() # 获取时间对象,与上面的时间对象一样print(type(time))结果2010-07-03 20:30:30
首先我们先搞清楚delta Δ是什么意思,假设我们从一个地方出发,起始时间为t1,终点时间为t2,那么我们花费的时间就为t2-t1,我们就可以表示为Δt,此时的delta就代表两个时间段的差值,也就是时间变化量。datetime模块主要是用来计算时间的,所以也有这个概念。
注意:timedelta只能与date类,datetime类还有本身进行计算,且不能传入年份,月份
一般传入四个参数:日,时,分,秒用来计算
与本身进行计算
delta1 = datetime.timedelta(days=2, hours=8, minutes=30, seconds=20)delta2 = datetime.timedelta(days=1, hours=4)print(delta1-delta2)结果1 day, 4:30:20
与date类进行计算
delta1 = datetime.timedelta(days=2, hours=8, minutes=30, seconds=20)date = datetime.date(year=2020, month=7, day=6)print(type(date-delta1))print(date-delta1)结果# date类型与delta相减结果仍是date类型2020-07-04
与datetime类进行计算
delta1 = datetime.timedelta(days=2, hours=8, minutes=30, seconds=20)date_time = datetime.datetime(year=2020, month=7, day=4)print(type(date_time-delta1))print(date_time-delta1)结果# 仍是datetime.datetime类型2020-07-01 15:29:40
介绍完这几个大类后我们来做一个练习,使用datetime模块来计算用户输入的的年份是平年还是闰年
思路:我们可以先创建一个date类或者datetime类,传入用户输入的年份,month=3, days=1,第二步创建一个timedelta类,传入参数 days=1,然后用创建的类减去timedelta类即可或者二月份的最后一天,如果是29则为闰年,为28则为平年。
year = int(input('请输入年份:'))t = datetime.datetime(year=year, month=3, day=1)td = datetime.timedelta(days=1)res = t - tdif res.day == 29: print('{}年是闰年'.format(year))elif res.day == 28: print('{}年是平年'.format(year))
转载地址:http://weelf.baihongyu.com/