博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
datetime模块(转载)
阅读量:2062 次
发布时间:2019-04-29

本文共 2695 字,大约阅读时间需要 8 分钟。

datetime模块

前言:datetime模块一般用来对时间进行计算,比如现在的两小时后是什么时间,几年几月,2050年的3月1日的前一天是几月几日等等。

在正题开始之前我先让大家明白闰年和平年是怎么计算的。

  • 闰年:将年份除以4没有余数则为闰年,闰年的二月有29天
  • 平年:将年份除以4有余数则为平年,平年的二月有28天

搞清楚datetime模块需要清楚就需要知道datetime中的四大类

time:时间类

date:日期类
datetime:日期时间类
timedelta:时间变化类

1. time类

一般传入三个参数,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

2. 日期类

传入三个参数:年,月,日

datetime.date(year, month, day)

date = datetime.date(year=2020, month=12, day=20)print(type(date))print(date)结果
# 实例化一个date对象2020-12-20

日期类与时间类的方法类似,这里就不再演示

3. timedate类

一般传入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

4. timedelta类

首先我们先搞清楚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/

你可能感兴趣的文章
数据结构 拓扑排序
查看>>
(PAT 1040) Longest Symmetric String (DP-最长回文子串)
查看>>
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
【UML】《Theach yourself uml in 24hours》——hour4
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【深度学习】GRU的结构图及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>