(6)time&datetime(时间模块)
什么是时间模块
就是处理时间相关的功能
如用户注册的时间、统计程序运行的时间等
time 模块
计算机中有三种时间
1、时间戳
从1970年到今天,这个时间段中间经历的秒数
获取时间戳:time.time()
通常用来做时间间隔计算的
2、格式化的字符串形式
time.strftime('%Y-%m-%d %H-%M-%S %p') #括号里就是定义时间显示的格式
time.strftime('%Y-%m-%d %X') #括号最后的大写X就是代表了时分秒的标准格式
通常用来给你看时间用的
3、结构化的时间对象
定向的获取时间的那个一个部分,比如只要获取小时,或者今天是一年中的第几天
time.localtime() #用来获取本地区时间
time.gmtime() #用来获取UTC时间(世界标准时间)
PS:地球分很多个时区,时间对象就是用来获取本地时区的时间,比如上海就正好被划分进东8区的时间GMT+8:00
4、自带格式化的字符串时间
time.asctime()
5、时间延迟
time.sleep() #括号内填写数字,就是延迟多少秒
三者之间的互转(看图)
PS:由图可知时间戳不能直接转换成格式化的字符串时间,格式化的字符串时间也不能直接转换成时间戳
例:三者之间的转换
res = time.localtime(1232131332) #括号里填上时间戳转换成结构化的时间
ret = time.strftime('%Y-%m-%d,res) #strftime有两个参数,一个时间的格式,第二个就是结构化的时间对象,转换成格式化的字符串时间
rex = time.strptime(ret,'%Y-%m-%d) #strptime有两个参数,一个是格式化的字符串时间,第二个就是格式化的字符串时间的格式,转换成结构化的时间
time.mktime(rex) #将结构化的时间转换成时间戳
time模块的弊端
1、时间格式是经常用到的,但是得自己写
2、格式化字符串的时间不能和时间戳互转,必须通过结构化的时间进行中转
针对time模块的弊端,datetime模块可以解决这个问题
datetime模块
datetime模块的优点
import datetime
datetime模块的三点好处:
1. 获取格式化的字符串格式的时间比较方便
print(datetime.datetime.now()) #一条指令直接获取格式化的时间
2. 格式化的字符的时间可以与时间戳直接互转
print(datetime.datetime.fromtimestamp(123123123)) #一条指令直接将时间戳转换成格式化字符串的时间
3. 时间的加减操作方便
print(datetime.datetime.now()+datetime.timedelta(hours=3)) #求三小时后的时间
print(datetime.datetime.now()-datetime.timedelta(hours=3)) #求三小时前的时间
print(datetime.datetime.now()+datetime.timedelta(hours=-3)) #求三天前的时间,这里前面是加号,在后面定义的时候可以加一个 - 号,也能求到三天前的时间
print(datetime.datetime.now()+datetime.timedelta(weeks=3)) #求三星期后的时间