首页 > python学习 > python中的time模块
2018
12-20

python中的time模块

time模块提供各种时间相关的功能

altzone():当地夏令时与UTC(格林威治天文时间)时间的差异,单位为秒。对夏令时启用地区才能使用。

asctime([t]):转换struct_time表示的时间为一个可读的形式为'Thu Dec 20 16:59:55 2018'的24个字符的字符串。如果没有给出参数t,就默认使用localtime()函数来获取当前的时间。

clock():该方法依赖操作系统,在Unix返回当前处理器运行的时间,在Windows返回离第一次调用本函数的时间,不推荐。建议使用 perf_counter() 或 process_time() 代替

ctime([secs]) :作用和asctime()相同,转化的是时间戳,未给参数默认使用当前时间

daylight:如果夏令时被定义,则该值为非零。

gmtime([secs]):接收时间戳并返回UTC下的时间元组

localtime([secs]):接收时间戳并返回当地时间下的时间元组

mktime(t):接受时间元组并返回时间戳

monotonic():返回一个只增加的时钟。在Windows里是等同于GetTickCount()函数。

monotonic_ns():同pmonotonic,单位纳秒

perf_counter():返回系统运行时间(秒),包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。

perf_counter_ns():同perf_counter,单位纳秒

process_time():返回当前进程使用CPU的时间总和(秒),不包含睡眠时间,包含了thread_time()时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。

process_time_ns():同process_time,单位纳秒

sleep(secs):推迟线程的运行,secs 的单位是秒

strftime(format[, t]) :把一个时间元组转化为格式化的时间字符串。如果 t 未指定,将传入time.localtime()。如果元组中任何一个元素越界,将会抛出 ValueError 异常。

    >>> import time as t
    >>> t.strftime('今天时间:%Y %m %d %H:%M:%S', t.gmtime())
    '今天时间:2018 12 20 09:06:58'

strptime(string[, format]):把一个格式化时间字符串转化为时间元祖(struct_time)。实际上它和 strftime() 是逆操作。

    >>> import time as t
    >>> t.strptime('2018 12 20','%Y %m %d')
    time.struct_time(tm_year=2018, tm_mon=12, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=354, tm_isdst=-1)

thread_time():返回系统分析当前进程使用CPU的时间总和(秒)

thread_time_ns():同thread_time,单位纳秒

time():返回当前时间的时间戳

time_ns():同time,单位纳秒

timezone:返回当地的时区与UTC标准时间的差,单位为秒。

tzname:包含两个字符串的元组:第一个表示当地非夏令时的时区名称,第二个表示当地夏令时的时区名称。

时间元祖(struct_time):

gmtime(),localtime() 和 strptime()返回时间元祖(struct_time),而asctime(),mktime(),strftime()需要传入时间元祖,时间元祖使用索引和属性都可以获取想要的值

    0:tm_year(年,如:2015)
    1:tm_mon(月,1 ~ 12)
    2:tm_mday(日,1 ~ 31)
    3:tm_hour(时,0 ~ 23)
    4:tm_min(分,0 ~ 59)
    5:tm_sec(秒,0 ~ 61(60代表闰秒,61是基于历史原因保留)
    6:tm_wday(星期几,0 ~ 6(0表示星期一)
    7:tm_yday(一年中第几天,1 ~ 366)
    8:tm_isdst(是否为夏令时,0, 1, -1(-1代表夏令时)

一个时间元祖的例子:

a=time.gmtime()
print(a)
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=20, tm_hour=8, tm_min=44, tm_sec=30, tm_wday=3, tm_yday=354, tm_isdst=0)
a[3] //使用索引获取小时数
8
a.tm_hour //使用属性获取小时数
8

format 格式:

    %a:本地(locale)简化星期名称
    %A:本地完整星期名称
    %b:本地简化月份名称
    %B:本地完整月份名称
    %c:本地相应的日期和时间表示
    %d:一个月中的第几天(01 - 31)
    %H:一天中的第几个小时(24 小时制,00 - 23)
    %l:一天中的第几个小时(12 小时制,01 - 12)
    %j:一年中的第几天(001 - 366)
    %m:月份(01 - 12)
    %M:分钟数(00 - 59)
    %p:本地 am 或者 pm 的相应符
    %S:秒(01 - 61)
    %U:一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第 0 周
    %w:一个星期中的第几天(0 - 6,0 是星期天)
    %W:和 %U 基本相同,不同的是 %W 以星期一为一个星期的开始
    %x:本地相应日期
    %X:本地相应时间
    %y:去掉世纪的年份(00 - 99)
    %Y:完整的年份
    %z:用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数)
    %Z:时区的名字(如果不存在为空字符)
    %%:%号本身
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。