Python3.x time模块

  python中,我们会用到很多和时间相关的操作。下面就来看看时间的模块的作用。

  使用相应功能需要导入time模块

import time

  time模块方法:

  asctime(p_tuple=None):

  将一个时间的元组或者struct_time类型的数据转换为字符串。

print(time.asctime())
print(time.asctime((2012,5,12,11,36,54,3,1,1)))
print(time.asctime(time.localtime(1462707651)))
print(type(time.asctime((2012,5,12,11,36,54,3,7,12))),type(time.asctime(time.localtime(1462707651.3773372))))

  运行结果是:

Thu Sep  1 14:36:32 2016
Thu May 12 11:36:54 2012 Sun May 8 19:40:51 2016 <class 'str'> <class 'str'>

  可以看见asctime方法将元组的时间格式以及struct_time类型的数据转换为了字符串,如果不进行参数的指定,就会返回当前时间。

  clock():

  第一次调用时返回系统运行时间,以后调用时都显示与第一次调用的间隔。

print(time.clock())
time.sleep(1)
print(time.clock())
time.sleep(1)
print(time.clock())

  运行结果是:

4.665297557343505e-07
0.9996267761954125
1.9995838554578849

  ctime(seconds=None):

  这个方法是将时间戳转换为字符串格式,如果没有参数,则将当前时间转换为字符串

print(time.ctime())
print(time.ctime(1462707651))
print(type(time.ctime()))

  运行结果是:

Thu Sep  1 14:48:54 2016
Sun May  8 19:40:51 2016
<class 'str'>

  gmtime(seconds=None):

  将时间戳转换为0时区的struct_time类型。如果没有参数,则将当前时间进行转换。

print(time.gmtime())
print(time.gmtime(1462707651))
print(type(time.gmtime(1462707651)))

  运行结果是:

time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=7, tm_min=8, tm_sec=13, tm_wday=3, tm_yday=245, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=5, tm_mday=8, tm_hour=11, tm_min=40, tm_sec=51, tm_wday=6, tm_yday=129, tm_isdst=0)
<class 'time.struct_time'>

  struct_time类型解释:

    tm_year  年

    tm_mon  月

    tm_mday  日

    tm_hour  小时(注意时区的差别)

    tm_min  分

    tm_sec  秒

    tm_wday  一周的第几天(0是周一)

    tm_yday  一年的第几天

    tm_isdst  夏令时标志位(有1,0,-1)

  localtime(seconds=None):

  将时间戳转换为当前时区的struct_time类型。如果没有参数,则将当前时间进行转换。

print(time.localtime())
print(time.localtime(1462707651))
print(type(time.localtime(1462707651)))

  运行结果是:

time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=23, tm_sec=16, tm_wday=3, tm_yday=245, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=5, tm_mday=8, tm_hour=19, tm_min=40, tm_sec=51, tm_wday=6, tm_yday=129, tm_isdst=0)
<class 'time.struct_time'>

  mktime(p_tuple):

  接收一个时间的元组,返回时间戳。

print(time.mktime(time.gmtime()))
print(time.mktime((2016, 9, 1, 15, 23, 16, 3, 245, 0)))

  运行结果是:

1472686642.0
1472714596.0

  mktime方法必须要传入参数。

  sleep(seconds):

  延迟给定的秒数。

print(time.localtime())
time.sleep(3)
print(time.localtime())

  运行结果是:

time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=45, tm_sec=2, tm_wday=3, tm_yday=245, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=45, tm_sec=5, tm_wday=3, tm_yday=245, tm_isdst=0)

  strftime(format, p_tuple=None):

  将struct_time类型的数据使用指定的格式输出。如果没有传入struct_time类型的数据则使用当前时间。

print(time.strftime('%Y-%m-%d %H:%M:%S'))
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
print(time.strftime('%Y-%m-%d %H:%M:%S',(2016, 9, 1, 15, 23, 16, 3, 245, 0)))

  运行结果是:

2016-09-01 15:51:03
2016-09-01 15:51:03
2016-09-01 15:23:16

  常用的格式代码如下:
    %Y    十进制数的世纪年份
    %m    十进制数的月份[01,12]
    %d    十进制数的天数[01,31]
    %H    十进制数的小时(24小时制)[00,23]
    %M    十进制数的分钟[00,59]
    %S    十进制数的秒数[00,61]
    %z    时区与UTC(0时区)的偏移
    %a    当前语言环境下缩写的工作日名称
    %A    当前语言环境下完整的工作日名称
    %B    当前语言环境下缩写的月份名称
    %B    当前语言环境下完整的月份名称
    %C    当前语言环境下适当的日期和时间表示
    %I    十进制数的小时(12小时制)[01,12]
    %p    当前语言环境下的上午或下午

  strptime(string, format):

  将格式化字符串转换为时间戳。

print(time.strptime('2016-09-01 15:51:03','%Y-%m-%d %H:%M:%S'))
print(time.strptime('2016-09-01 15:23:16','%Y-%m-%d %H:%M:%S'))

  运行结果是:

time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=51, tm_sec=3, tm_wday=3, tm_yday=245, tm_isdst=-1)
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=23, tm_sec=16, tm_wday=3, tm_yday=245, tm_isdst=-1)

  time():

  返回当前时间的时间戳,如果系统时钟提供几分之一秒,返回结果也会有相应的结果。

print(time.time())

  运行结果是:

1472717978.9570408

 

posted @ 2016-09-01 16:21  cos1eqlg0  阅读(297)  评论(0编辑  收藏  举报