在写程序的时候经常会和时间打交道,在python中有自己内嵌的时间模块time,可以帮助我们很简单的处理时间,下面记录一下python的time模块常用的地方。

  首先说一下time模块表示时间的方式,一般来说有两种,第一种是时间戳(timestamp)的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的;
      第二种以元组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同。

   以元组形式表示的时间:time.struct_time(tm_year=2014(年), tm_mon=4(月), tm_mday=11(日), tm_hour=21(时), tm_min=54(分), tm_sec=29(秒), tm_wday=4(周), tm_yday=101(一年中的第几天), tm_isdst=0(是否启用夏令时))

  下面介绍一些常用的参数

 1、

>>> time.time()
1397224868.375651

   返回当前的时间戳

 2、


>>> time.mktime(time.localtime())
1397224954.0

   将struct_time格式的时间转换为时间戳格式

 3、

>>> time.sleep(1)
>>>

   这个很显而易见了,用我们经常说的就是睡n秒再做后边的。也就是推迟指定的时间再运行。

 4、


>>> time.asctime()
'Fri Apr 11 22:06:02 2014'

 把一个表示时间的元组或者struct_time表示为这种形式:Fri Apr 11 22:06:02 2014,如果没有指定时间则默认为当前时间。

  5、


>>> time.ctime()
'Fri Apr 11 22:07:56 2014'
>>> time.ctime(time.time())
'Fri Apr 11 22:08:16 2014'

 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

  6、语法:


>>> time.strftime('%Y%m%d%H%M')
'201404112211'

  把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。

   语法:time.strftime(format[, t])

 请注意后边的t,这里他支持元组的格式,请看最后一个例子:

   python中时间日期格式化符号:
 %y 两位数的年份表示(00-99)
 %Y 四位数的年份表示(000-9999)
 %m 月份(01-12)
 %d 月内中的一天(0-31)
 %H 24小时制小时数(0-23)
 %I 12小时制小时数(01-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),星期天为星期的开始
 %W 一年中的星期数(00-53)星期一为星期的开始
 %x 本地相应的日期表示
 %X 本地相应的时间表示
 %Z 当前时区的名称
 %% %号本身


>>> time.strftime('%Y%m%d%H%M %B_%a')
'201404112213 April_Fri'

 这里可以根据自己的需求去格式化

 

>>> time.strftime('%Y_%m_%d %H:%M:%S',time.localtime(os.path.getatime('/home/addam/aa/test.txt')))
'2014_04_11 21:30:30'

 

 7、time.strptime(string[, format])


>>> time.strptime("20140412","%Y%m%d")
time.struct_time(tm_year=2014, tm_mon=4, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=102, tm_isdst=-1)

 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。