文章目录
关于time模块
在time模块中我们有三大对象:
时间戳
结构化的时间对象
字符串
用法1:time.time()
print(time.time())
# 用法解释:获取时间戳:从时间元年(1970.1.1 00:00:00)到现在的秒数/在其他一些语言 -- >毫秒数 --> 相差1000倍
# 输出
1584348305.7710142
用法2:time.gmtime()
print(time.gmtime()) # GMT 符合欧洲那边的习惯
# 用法解释:获取格式化时间对象: 是九个字段组成的:年月日时分秒......
# 输出
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=16, tm_hour=8, tm_min=47, tm_sec=15, tm_wday=0, tm_yday=76, tm_isdst=0)
# time.struct_time -- > 结构化的时间对象
你会发现上述这种用法的小时数据是和我们这边不符合的。
既然这个是符合欧洲那边的习惯,那么有没有符合我们这边的习惯呢 --> 当然是有的,请看用法3
用法3:time.localtime()
看函数名就知道,当地时间嘛
print(time.localtime())
# 用法解释:获取格式化时间对象: 是九个字段组成的:年月日时分秒......
# 输出
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=16, tm_hour=16, tm_min=51, tm_sec=9, tm_wday=0, tm_yday=76, tm_isdst=0)
用法4:time.strftime()
s = time.strftime("%Y,%m,%d %H:%M:%S")
print(s)
# 输出
2020,03,16 16:53:06
# 用法解释:格式化时间对象和字符串之间的转换,第二个参数默认是当前使用时的当前时间的格式化时间对象,如果要自己规定时间戳的话,那么我们可以这么做:
s = time.strftime("%Y,%m,%d %H:%M:%S",time.localtime(1))
print(s)
# 输出
1970,01,01 08:00:01
总结一下python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
用法5:time.strptime()
s = time.strptime("2020 03 16","%Y %m %d") # --> 没给都是默认值
print(s)
# 用法解释:把时间字符串转换成时间对象(格式一定相同)
# 输出
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=76, tm_isdst=-1)
用法6:time.sleep()
time.sleep(XXX)
# 用法解释:暂停当先线程XXX秒
关于datetime模块
import datetime
用法1:date类
# date类:
d = datetime.date(2010,10,10)
print(d)
# 获取date对象中的各个属性
print(d.year,d.month,d.day)
# 输出
2010-10-10
2010 10 10
用法2:time类
d = datetime.time(3,26,13)
print(d)
print(d.hour, d.minute, d.second)
用法3:datetime类(主要用于数学计算)
之前那两个用法是一个是日期还有一个是时间,这一个datetime可以理解为两个的结合体
dt =datetime.datetime(2001,1,1,1,1,1)
print(dt)
以下是这个数学计算的具体用法只能date datetime timedelta相互运算
# date datetime timedelta
td = datetime.timedelta(days=1)
d = datetime.datetime(2010,10,31)
res = d + td
print(res)
# 输出
2010-11-01 00:00:00