• python之time模块


    最后更新:2017-09-12

    导入time 模块

    import time
    

    Function

    疑问:

    1. 如何构建一个 struct_time出来

    1. asctime()

    time.asctime(p_tuple=None)
    
    功能:   将一个时间元组(struct_time)表示为: Tue Sep 12 14:54:06 2017 这种格式
    参数:   p_tuple,默认为 None,默认取 time.localtime()返回的时间元组
    返回值: 返回格式化的字符串
    
    time.asctime() # Tue Sep 12 14:58:21 2017
    
    

    2. clock()

    功能:   这个需要注意,在不同的系统上 "含义不同"。
            在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。
            在WINDOWS中,
                第一次调用,返回的是进程运行的实际时间。
                第二次之后的调用是自第一次调用以后到现在的运行时间。
                (实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)
    参数:   无
    返回值: 根据系统不同返回值可能不一样
    
    相关链接: 
        1. http://jeremybai.github.io/blog/2015/06/10/time_vs_clock
        2. http://www.runoob.com/python/att-time-clock.html
    
    # 该测试是在Mac上
    
    t = time.clock()    
    print(t)             # 0.055649
    time.sleep(1)
    t = time.clock()    
    print(t)             # 0.055912
    time.sleep(1.5)
    t = time.clock()    
    print(t)             # 0.056037
    
    

    3. ctime()

    time.ctime(seconds=None)
    
    功能:  将时间戳转换为 time.asctime()的 "当前时区" 格式
    参数:  seconds默认为None, 默认传入 time.time()的值
    返回值: 返回格式化的字符串
    备注:  time.ctime(second) 等价于 time.asctime(localtime(second))
    
    # 北京时区,东八区
    
    time.ctime(0)   # Thu Jan  1 08:00:00 1970  
    time.asctime(time.localtime(0)) # Thu Jan  1 08:00:00 1970
    
    time.ctime()    # Tue Sep 12 16:15:59 2017
    time.asctime(time.localtime()) # Tue Sep 12 16:15:59 2017
    
    

    4. get_clock_info()

    name可选值 对应的Function读取对应的值
    clock time.clock()
    monotonic time.monotonic()
    perf_counter time.perf_counter()
    process_time time.process_time()
    time time.time()
    time.get_clock_info(name)
    
    功能:  返回指定时钟的信息
    参数:  name: 时钟的名称
    返回值: 时钟信息
    注意: New in version 3.3.
    
    相关链接: https://docs.python.org/3/library/time.html#time.get_clock_info
    
    time.time()   # 1505205386.970501
    
    time.get_clock_info('time') # namespace(adjustable=True,
    implementation='gettimeofday()', monotonic=False, resolution=1e-06)
    
    

    5. gmtime()

    time.gmtime(seconds=None)
    
    功能: 将一个时间戳转换为 UTC时区(0时区) 对应的 struct_time
    参数: seconds时间戳
    返回值: 时间元组(struct_time)
    
    time.gmtime(0)  # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    time.localtime() # time.struct_time(tm_year=2017, tm_mon=9, tm_mday=12, tm_hour=16, tm_min=43, tm_sec=39, tm_wday=1, tm_yday=255, tm_isdst=0)
    
    time.gmtime(time.time()) # time.struct_time(tm_year=2017, tm_mon=9, tm_mday=12, tm_hour=8, tm_min=43, tm_sec=39, tm_wday=1, tm_yday=255, tm_isdst=0)
    
    

    6. localtime()

    time.gmtime(seconds=None)
    
    功能: 将一个时间戳转换为当前时区对应的 struct_time
    参数: seconds时间戳
    返回值: 时间元组(struct_time)
    
    time.localtime(0) # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
    
    time.localtime() # time.struct_time(tm_year=2017, tm_mon=9, tm_mday=12, tm_hour=16, tm_min=46, tm_sec=13, tm_wday=1, tm_yday=255, tm_isdst=0)
    
    

    7. mktime()

    time.mktime(p_tuple)
    
    功能: 将一个时间元组转换为 “当前时区” 对应的时间戳
    参数: p_tuple: 时间元组
    返回值: 时间元组(struct_time)
    注意: 是根据当前时区对应的时间戳
        一般而言,时间戳是指从 2017.1.1 00:00:00开始的,那么对于北京东八区来说,时间就为2017.1.1 08:00:00,那么UTC时间戳为0,那么对于东八区来说,就是 - 8 * 60 * 60 = - 28800
    
    time.mktime(time.gmtime(0))  # -28800
    time.mktime(time.localtime(0)) # 0
    
    

    8. monotonic()

    time.monotonic()
    功能: 单步时钟,只能向前走的,但是起点未知(并不是以1970.1.1 00:00:00 为起点的)
    参数: 无
    返回值: 针对某个起点而言的时间戳
    注意: 
        1. 取这个值无任何意义,只能去值之间的差值
        2. New in version 3.3.
    
    
    参考官方链接:  https://docs.python.org/3/library/time.html#time.monotonic
    
    print(time.time())      # 1505208085.507097        
    start_time =  time.monotonic()  
    print(start_time)       # 134338.997950387
    time.sleep(1)                  
    end_time = time.monotonic()    
    print(end_time)         # 134340.001831899          
    print(end_time - start_time)  # 1.0038815119769424
    

    8. perf_counter

    参考: https://stackoverflow.com/questions/25785243/understanding-time-perf-counter-and-time-process-time

    9. process_time

    参考: https://stackoverflow.com/questions/25785243/understanding-time-perf-counter-and-time-process-time

    10.sleep()

    time.sleep(seconds)
    
    功能: 让当前线程休眠 seconds 时长
    参数: seconds 休眠时间
    
    start_time = time.time()        
    time.sleep(2)                   
    end_time = time.time()          
                                    
    print(end_time - start_time) # 2.0050530433654785   
    
    

    11.strftime()

  • 相关阅读:
    快速傅里叶变换(FFT)
    【BZOJ】1005: [HNOI2008]明明的烦恼(prufer编码+特殊的技巧)
    【BZOJ】1030: [JSOI2007]文本生成器(递推+ac自动机)
    cf490 C. Hacking Cypher(无语)
    高精度模板2(带符号压位加减乘除开方封包)
    【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)
    【BZOJ】1500: [NOI2005]维修数列(splay+变态题)
    【BZOJ】1064: [Noi2008]假面舞会(判环+gcd+特殊的技巧)
    【BZOJ】1052: [HAOI2007]覆盖问题(贪心)
    【BZOJ】1028: [JSOI2007]麻将(贪心+暴力)
  • 原文地址:https://www.cnblogs.com/gaox97329498/p/12070189.html
Copyright © 2020-2023  润新知