今天写项目时遇到一行代码,如下:
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
- %% %号本身
本人经验,仅供参考!