日期格式化、时间戳和时间的转换
表达式 |
意义 |
%y |
两位数的年份表示(00-99) |
%Y |
四位数的年份表示(000-9999) |
%m |
月份(01-12) |
%d |
月内的一天(0-31) |
%H |
24小时制小时数(0-23) |
%I |
12小时制小时数(0-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),星期天为星期的开始 |
%x |
本地相应的日期表示 |
%X |
本地相应的时间表示 |
%Z |
当前时区的名称 |
%% |
%本身 |
函数表达式 |
含义 |
time.asctime([tupletime]) |
接受时间元组并返回一个可读的形式"Tue Dec 11 18:07:14 2008" (2008年12年12月12日周二18时07分14秒)的24个字符的字符串 |
time.clock() |
用以浮点数计算的秒数返回当前的CPU时间;用来衡量不同程序的耗时,比time.time()更有用 |
time.localtime([secs]) |
接收时间戳并返回当地时间下的时间元组t |
time.mktime(tupletime) |
接收时间元组并返回时间戳 |
time.sleep(secs) |
推迟调用线程的运行,secs指秒数 |
time.strftime(fmt[.tupletime]) |
接收一个时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定 |
time.strptime(str.fmt='%a %b %d %H:%M:%S %Y') |
根据fmt的格式把一个时间字符串解析为时间元组 |
time.time() |
返回当前时间的时间戳 |
time.ctime() |
将一个时间戳转换为一个时间的字符串 |
# time.time() # 返回当前时间的时间戳
In [217]: import time
In [218]: time.time()
Out[218]: 1518166671.059755
# time.asctime([tupletime]) # 接收一个时间元组,返回一个可读形式的24个字符的字符串
In [221]: time.asctime(time.localtime(time.time())) # 获取本地时间
Out[221]: 'Fri Feb 9 17:02:45 2018'
In [225]: time.localtime(time.time())
Out[225]: time.struct_time(tm_year=2018, tm_mon=2, tm_mday=9, tm_hour=17, tm_min=17, tm_sec=58, tm_wday=4, tm_yday=40, tm_isdst=0)
In [226]: t = time.localtime(time.time())
In [227]: time.asctime(t)
Out[227]: 'Fri Feb 9 17:19:06 2018'
# time.localtime([secs]) # 接收时间戳返回本地时间元组,然后用asctime函数做时间格式转换
In [229]: t = time.time()
In [230]: print t
1518168389.46
In [231]: m = time.localtime(t)
In [232]: print m
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=9, tm_hour=17, tm_min=26, tm_sec=29, tm_wday=4, tm_yday=40, tm_isdst=0)
In [233]: lt = time.asctime(m)
In [234]: print lt
Fri Feb 9 17:26:29 2018
# time.mktime(tupletime) # 接收时间元组并返回时间戳
In [235]: m
Out[235]: time.struct_time(tm_year=2018, tm_mon=2, tm_mday=9, tm_hour=17, tm_min=26, tm_sec=29, tm_wday=4, tm_yday=40, tm_isdst=0)
In [236]: time.mktime(m)
Out[236]: 1518168389.
# time.strftime(fmt[.tupletime]) # 接收一个时间组,返回指定的本地时间
In [8]: t
Out[8]: time.struct_time(tm_year=2018, tm_mon=2, tm_mday=10, tm_hour=8, tm_min=29, tm_sec=32, tm_wday=5, tm_yday=41, tm_isdst=0)
In [10]: time.strftime("%Y-%m-%d %H:%M:%S",t)
Out[10]: '2018-02-10 08:29:32'
In [11]: time.strftime("%Y-%m-%d %H:%M:%S %j",t)
Out[11]: '2018-02-10 08:29:32 041'
In [12]: time.strftime("%Y-%m-%d %H:%M:%S %p",t)
Out[12]: '2018-02-10 08:29:32 AM'
In [13]: time.strftime("%Y-%m-%d %H:%M:%S %p %w",t)
Out[13]: '2018-02-10 08:29:32 AM 6'
In [14]: time.strftime("%Y-%m-%d %H:%M:%S %p %w %b",t)
Out[14]: '2018-02-10 08:29:32 AM 6 Feb'
In [15]: time.strftime("%Y-%m-%d %H:%M:%S %p %w %B",t)
Out[15]: '2018-02-10 08:29:32 AM 6 February'
In [16]: time.strftime("%X",t)
Out[16]: '08:29:32'
In [17]: time.strftime("%x %X",t)
Out[17]: '02/10/18 08:29:32'
In [18]: time.strftime("%x %X %z",t)
Out[18]: '02/10/18 08:29:32 +0000'
# time.ctime([secs]) # 接收一个时间戳返回一个指定格式的字符串
In [19]: mm = time.time()
In [20]: time.ctime(mm)
Out[20]: 'Sat Feb 10 08:44:37 2018'
In [21]: print mm
1518223477.63
# time.strptime(fmt) # 根据fmt格式把时间字符串转换为时间元组
In [24]: time.strptime("10 2 2018", "%d %m %Y")
Out[24]: time.struct_time(tm_year=2018, tm_mon=2, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=41, tm_isdst=-1)
In [34]: time.strptime("10 2 2018 8 58 30", "%d %m %Y %H %M %S")
Out[34]: time.struct_time(tm_year=2018, tm_mon=2, tm_mday=10, tm_hour=8, tm_min=58, tm_sec=30, tm_wday=5, tm_yday=41, tm_isdst=-1)