(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)) #求三星期后的时间

posted @ 2018-12-05 20:04  clyde_S  阅读(497)  评论(0编辑  收藏  举报