####
time模块是一个内置模块,非常的重要,非常的常用,
datatime也是内置模块,
这两个都要会使用,
我用使用场景来学习,
####
场景1,让程序停留几秒,
import time
time.sleep(3)
####
场景2,格式化生成当前时间
import time
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2021-09-22 10:57:06
###
场景3,获取一个10位的时间戳
import time
print(int(time.time())) # 因为不加int,会有小数点后面很多位,
###
场景4,把1500000000转成成格式化时间,
p = time.localtime(1500000000) # 先把时间戳时间转换成结构化时间,
print(p) # time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
print(time.strftime('%Y-%m-%d %H:%M:%S',p)) # 把结构化时间转化成格式化时间
###
场景5,# 把2019-12-18转化成时间戳时间
import time
p=time.strptime('2019-12-17', '%Y-%m-%d') # 先转成结构化时间,必须要这一步,不能直接格式化时间转换成时间戳时间,
print(p)
print(time.mktime(p)) # 然后转换成时间戳时间 55768267.03783512
####
场景6,时间之间的加减,必须是时间戳之间的加减,
import time
t1 = time.time()
t2 = t1 + 10
print(t2)
###
场景7,时间戳转换成格式化时间,只有一种格式
import time
print(time.strftime('%c')) # Wed Sep 22 11:25:57 2021 ,这是把当前时间转成%c的格式,
print(time.ctime(150000000)) # 为什么是ctime就是因为只能转换成%c的格式,Thu Oct 3 10:40:00 1974
ret = time.localtime(150000000)
print(time.asctime(ret)) # asctime()必须传递一个元组, Thu Oct 3 10:40:00 1974
ctime和asctime,结果都是一样的,只是传递的值格式不一样,用法不一样而已,
####
总结,
几个概念,
1,结构化时间,print(time.localtime()) # 结构化时间,这是格式化时间的基础,比如计算年和年的差,月和月的差,
2,格式化时间,print(time.strftime('%Y-%m-%d %H:%M:%S',p)) # 把结构化时间转化成格式化时间
3,时间戳时间,print(time.time())
他们之间的转换,
####
datatime模块重新封装了time模块,提供更多接口
datetime 模块提供了各种类用于操作日期和时间,该模块侧重于高效率的格式化输出
datetime 模块中定义的常用类:
datetime.date - 表示日期的类,常用属性:year, month, day
datetime.time - 表示时间的类,常用属性:hour, minute, second, microsecond, tzinfo
datetime.datetime - 表示日期和时间的类,常用属性: year, month, day, hour, minute, second, microsecond, tzinfo
datetime.timedelta - 表示时间间隔,即两个时间点(date,time,datetime)之间的长度
具体的使用后面用到了再说,
####