优先掌握的时间模块
一.time
时间分为三种格式
1.时间戳:从1970年到现在经历过的秒数
时间戳的作用:用于时间间隔的计算
import time
print(time.time())#1587949585.395314
2.按照某种格式显示的时间:2020-03-30 11:11:11
作用:用于展示时间
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))#2020-04-27 09:06:25 AM
print(time.strftime('%Y-%m-%d %X'))#2020-04-27 09:06:25
3.结构化时间
作用:获取当前的部分时间
res=time.localtime()
print(res)#time.struct_time(tm_year=2020, tm_mon=4, tm_mday=27, tm_hour=9, tm_min=9, tm_sec=42, tm_wday=0, tm_yday=118, tm_isdst=0)
print(res.tm_yday)#118
print(res.tm_year)#2020
二:datetime
直接展示格式化时间
import datetime
print(datetime.datetime.now()) # 2020-04-27 09:15:03.548766
用于时间计算(没有年的计算)
print(datetime.datetime.now() + datetime.timedelta(days=3))
2020-04-30 09:20:19.602661
print(datetime.datetime.now() + datetime.timedelta(days=-3))
2020-04-24 09:20:19.602661
print(datetime.datetime.now() - datetime.timedelta(weeks=-3))
2020-05-18 09:20:19.602661
时间模块需要掌握操作
1.时间格式的转换
格式化字符串时间------strptime------>结构化时间 (struct_time) ------ mktime------>时间戳(Timestamp)
格式化字符串时间<-----strftime-------结构化时间<----- localtime/gmtime------时间戳
结构化时间–>时间戳
import time
s_time=time.localtime()
print(time.mktime(s_time))#1587951005.0
时间戳转结构化时间
localtime:中国北京时间
gmtime:世界时间(北京时间-8hours)
tm_time=time.time()
print(time.localtime(tm_time))#time.struct_time(tm_year=2020, tm_mon=4, tm_mday=27, tm_hour=9, tm_min=50, tm_sec=15, tm_wday=0, tm_yday=118, tm_isdst=0)
print(time.gmtime(tm_time))#time.struct_time(tm_year=2020, tm_mon=4, tm_mday=27, tm_hour=1, tm_min=51, tm_sec=22, tm_wday=0, tm_yday=118, tm_isdst=0)
结构化时间—>格式化字符串时间
s_time=time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))#2020-04-27 09:56:56
格式化时间—>结构化时间
print(time.strptime('2020-04-27 09:56:56','%Y-%m-%d %H:%M:%S'))#time.struct_time(tm_year=2020, tm_mon=4, tm_mday=27, tm_hour=9, tm_min=56, tm_sec=56, tm_wday=0, tm_yday=118, tm_isdst=-1)
真正需要掌握的:格式化时间---->时间戳
当我们得到的是一个格式化的时间,但是需要得到7天后的时间
2020-04-27 09:56:56
格式化时间---->结构化时间---->时间戳
struct_time=time.strptime('2020-04-27 09:56:56','%Y-%m-%d %H:%M:%S')
timestamp=time.mktime(struct_time) + 7*86400
时间戳------>结构化时间------->格式化时间
res=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timestamp))
print(res)#2020-05-04 09:56:56
了解知识
time.sleep(3)
import time
print(time.asctime())#Mon Apr 27 10:21:01 2020
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))#2020-04-27 10:21:01 AM
结构化时间---- asctime ----->%a %b %d %H %M %S %Y串<—ctime-----时间戳
import datetime
print(datetime.datetime.now())#2020-04-27 10:26:27.492310,北京时间
print(datetime.datetime.utcnow())#2020-04-27 02:26:27.492310,世界时间
格式化时间----->时间戳
转化后的格式固定
print(datetime.datetime.fromtimestamp(333333))#1970-01-05 04:35:33