time 是 Python 里常用的时间模块。
本文给出 时间戳、struct_time(时间元组)以及 时间字符串 三者之间的转换关系,便于查阅。
时间戳:自从1970年1月1日午夜(历元)经过多长时间。
时间元组:内含9个数据的元组。
属性 | 值 |
---|---|
tm_year | 2018 |
tm_mon | 1-12 |
tm_mday | 1-31 |
tm_hour | 0-23 |
tm_min | 0-59 |
tm_sec | 0-59 |
tm_wday | 0-6(0是周一) |
tm_yday(一年第几天) | 1-366 |
tm_isdst | 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1 |
时间字符串:如”2018-03-12”的格式化时间字符串。
python中常用格式化符号:
符号 | 含义 |
---|---|
%y | 两位数的年份表示(00-99) |
%Y | 四位数的年份表示(000-9999) |
%m | 月份(01-12) |
%d | 月内中的一天(0-31) |
time.time()
:用于获取当前时间戳 ,单位为秒
time.localtime()
:用于将时间戳转为时间元组
time.strftime()
:用于将时间元组转换为时间字符串
time.strptime()
:用于将时间字符串转换为时间元组
time.mktime()
:用于将时间元组转换为时间戳
time.struct_time()
:用于构建时间元组
> In[0]:time.time()
> Out[0]: 1520840471.7365973
> In[1]:time.localtime(1520840471)
> Out[1]:time:struct_time(tm_year=2018, tm_mon=3, tm_mday=12, tm_hour=15, tm_min=41, tm_sec=11, tm_wday=0, tm_yday=71, tm_isdst=0)
> In[2]: time.strftime('%Y-%m-%d', time.localtime(1520840471))
> Out[2]: '2018-03-12'
> In[3]: time.strptime('2018-03-12','%Y-%m-%d')
> Out[3]: time:struct_time(tm_year=2018, tm_mon=3, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=71, tm_isdst=-1)
> In[4]: time.mktime(time.strptime('2018-03-12','%Y-%m-%d'))
> Out[4]: 1520840000.0
struct_time(时间元组)作为转换的枢纽,能够便捷转换为 时间戳 与 时间字符串。
时间戳 <—————> struct_time(时间元组) <—————>时间字符串