今天写项目时遇到一行代码,如下:

time.strftime('%Y%m%d',time.localtime(time.time()))

开始时看到感觉这是一行不平凡的代码 = =。  查了下,这行代码就是获取系统当前的时间,类型为字符串类型。  Python的time模块用的还是很频繁的,所以讲一些常用的方法和解释记录如下:


1.上面的代码拆开来解释。首先看:


time.time()    它返回当前时间的时间戳(1970纪元后经过的浮点秒数)。

如果调用这个函数,如:  print time.time()  ,那么会输出下面的结果:

1234894839.231432

再来看:


time.localtime(secs)     它将一个时间戳作为参数传进去,返回根据这个时间戳而得到的一个时间元组(struct_time),参数secs是可选的,默认是当前时间。如果调用这个函数,如:  print time.localtime() ,那么会输出以下结果:

time.struct_time(tm_year=2016, tm_mon=11, tm_mday=29, tm_hour=10, tm_min=26, tm_sec=7, tm_wday=6, tm_yday=332, tm_isdst=0)



最后来看:


time.strftime(format,t) 它接收一个时间元组,将这个元组转化为格式化的时间字符串。第一个参数format是格式字符串(格式字符串的详细说明在最下方),

第二个参数t是可选的,它是一个时间元组,如果没有默认是当前时间元组。如果调用这个函数,如:  

print time.strftime("%b %d %Y %H:%M:%S",time.localtime()) ,那么会输出以下结果:



Nov 29 2016 10:43:38



那么现在来看上面的那行代码就是获取当前时间的意思了。


2.其他有用的time模块中的函数


(1)time.gmtime(sec) 它将一个时间戳作为参数,将这个时间戳转换为UTC时区(0时区)的时间元组(struct_time),类似于time.localtime()函数,

参数sec就是传进去的时间戳。


(2)time.mktime(t) 它的功能和time.gmtime()函数的作用相反,它将一个时间元组(struct_time)转化为时间戳,参数t就是传入的时间元组。


(3)time.asctime(t) 它将一个时间元组(struct_time)转化为形式如下的时间字符串:Tue Nov 29 10:47:14 2016 。这个字符串的第一个是星期,然后

是月日,时间,年,这个字符串的意思为:2016年11月29日 周二 10时47分14秒。参数t为传入的时间元组。


(4)time.ctime(sec) 它将一个时间戳转化为形式如下的时间字符串:Tue Nov 29 10:47:14 2016 。 参数sec为传入的时间戳。

(5)time.sleep(secs) 这个函数是线程推迟secs秒,类似于线程休眠。


附:

时间日期格式化符号:

  • %y         两位数的年份表示(00-99)
  • %Y         四位数的年份表示(000-9999)
  • %m       月份(01-12)
  • %d       
  • %H       
  • %I       
  • %M       分钟数(00=59)
  • %S       
  • %a        本地简化星期名称
  • %A       
  • %b       
  • %B       
  • %c       
  • %j       
  • %p        本地A.M.或P.M.的等价符
  • %U       一年中的星期数(00-53)星期天为星期的开始
  • %w       
  • %W       
  • %x       
  • %X        本地相应的时间表示
  • %Z       
  • %%       %号本身




本人经验,仅供参考!