time模块
前言:搞懂time模块首先要清楚三个概念:时间戳,时间对象,字符串时间
- 时间戳:从时间元年(1970 年 1月 1日 00:00:00)到现在经过的秒数
- 时间对象:包含年,月,日,时,分,秒,一年中第几周,一年中第几天等
- 字符串时间:我们人们能够理解的时间,比如:2020-7-25 14:12
1. 时间戳
# 获取时间戳
time_stamp = time.time() # 获取当前时间戳
print(time_stamp)
结果:
1595657605.1809392
# 将时间对象转为时间戳
print(time.mktime(time.localtime())) # 获取当前时间戳
2. 时间对象
# 将时间戳转为时间对象
print(time.localtime()) # 获取本地时间对象,可以传入时间戳,默认传入当前时间戳
print(time.gmtime()) # GTM时间,符合欧洲时间的习惯,可以传入时间戳,默认传入当前时间戳
结果:
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=25, tm_hour=14, tm_min=25, tm_sec=7, tm_wday=5, tm_yday=207, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=25, tm_hour=6, tm_min=25, tm_sec=7, tm_wday=5, tm_yday=207, tm_isdst=0)
我们知道不传默认为当前时间戳。那么我们传入0s是不是可以得到时间元年的时间对象呢?
# 将时间戳转为时间对象
print(time.localtime(0))
print(time.gmtime(0))
结果:time.struct_time(tm_year=1970, tm_mon=1,tm_mday=1,tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
可以发现正是时间元年的时间,但要注意我们本地的时间比欧洲的时间多8个小时
# 将字符串时间转为时间对象
print(time.strptime('2020-12-12', '%Y-%m-%d'))
结果:
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=347, tm_isdst=-1)
3. 字符串时间
# 将时间对象转为字符串时间
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) # 其中time.localtime()为默认值,可以不用手动传入
结果:
2020-07-25 14:28:08
结论:以上无非就是时间戳与时间对象直接的转换,时间对象再与字符串时间直接的转换。
上图!!
结语:你热爱生命吗?那幺别浪费时间,由于时间是组成生命的材料。——富兰克林