Python基础014--日期格式化、时间戳和时间的转换

日期格式化、时间戳和时间的转换

  • 日期格式化
    • python中日期格式化符号
表达式 意义
%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模块中的内置函数
函数表达式 含义
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 Feb9 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 Feb9 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 Feb9 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)

    推荐阅读