zoukankan      html  css  js  c++  java
  • time模块的使用

     

    import time

    一、方法汇总:

    • time.sleep():定时函数
    • time.time(): 时间戳/墙上时间
    • time.clock():CPU时间
    • time.local() / gmtime(): 把时间戳转换成时间元组结构(gmtime差localtime八个小时)
    • time.mktime(): 把时间元组转换成时间戳 
    • time.strftime():把时间元组转换为完成时间字符串格式
    • time.strptime():与strftime的用途相反

    timestamp(时间戳):指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数

    struct_time(时间元组):可以使用localtime和gmtime将时间戳转换为时间元组,注意:localtime和structtime用法相似,但gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time

    format_string(字符串格式):可以将时间元组转换成时间字符串格式

    二、类型转换和实战

    1、time.time()和time.clock()的区别:

    time.time()是统计的wall time(即墙上时钟),也就是系统时钟的时间戳(1970纪元后经过的浮点秒数)。所以两次调用的时间差即为系统经过的总时间。
    time.clock()是统计cpu时间的工具,这在统计某一程序或函数的执行速度最为合适。两次调用time.clock()函数的差值即为程序运行的cpu时间。

    import time
    def procedure():
        a = 0
        for i in range(10000):
            a += 1
    
    t0 = time.time()
    t_0 = time.clock()
    procedure()
    time.sleep(2)
    t1 = time.time()
    t_1 = time.clock()
    print('wall time is %f'%(t1-t0))
    print('CPU time is %f'%(t_1-t_0))

    打印结果:

    wall time is 2.000038
    CPU time is 1.999886

    2、各类型转换

    import time
    # 获取时间戳
    timestamp = time.time()
    print(timestamp)
    
    # localtime和gmtime用法相似,将时间戳转换成时间元组。
    # 注意:gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。
    # localtime与gmtime相差8个小时(localtime比gmtime多8小时)
    localtime = time.localtime(timestamp)
    print(localtime)
    gmtime = time.gmtime(timestamp)
    print(gmtime)
    # 将时间元组转换成时间戳
    mktime = time.mktime(localtime)
    print(mktime)
    
    # 将时间元组转换成时间字符格式('Wed Mar 27 10:58:39 201')
    asctime_1 = time.asctime(localtime)
    asctime_2 = time.asctime(gmtime)
    print(asctime_1)
    print(asctime_2)
    # 将时间戳直接变成时间字符格式(和local一致)
    ctime = time.ctime(timestamp)
    print(ctime)
    
    # 将时间元组转换成指定时间字符格式
    strftime = time.strftime('%Y-%m-%d %X',localtime)
    print(strftime)
    strptime = time.strptime(strftime,'%Y-%m-%d %X')
    print(strptime)

    打印结果:

    1553659424.696932
    time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=12, tm_min=3, tm_sec=44, tm_wday=2, tm_yday=86, tm_isdst=0)
    time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=4, tm_min=3, tm_sec=44, tm_wday=2, tm_yday=86, tm_isdst=0)
    1553659424.0
    Wed Mar 27 12:03:44 2019
    Wed Mar 27 04:03:44 2019
    Wed Mar 27 12:03:44 2019
    2019-03-27 12:03:44
    time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=12, tm_min=3, tm_sec=44, tm_wday=2, tm_yday=86, tm_isdst=-1)
    格式含义备注
    %a 本地(locale)简化星期名称  
    %A 本地完整星期名称  
    %b 本地简化月份名称  
    %B 本地完整月份名称  
    %c 本地相应的日期和时间表示  
    %d 一个月中的第几天(01 - 31)  
    %H 一天中的第几个小时(24小时制,00 - 23)  
    %I 第几个小时(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 时区的名字(如果不存在为空字符)  
    %% '%'字符  

     3、实际例子

    # 获取当前时间和日期
    now = time.strftime('%Y-%m-%d %X',time.localtime())
    print(now)

    打印结果:

    2019-03-27 12:13:45

     end~

  • 相关阅读:
    LeetCode 258 Add Digits
    LeetCode 231 Power of Two
    LeetCode 28 Implement strStr()
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 21 Merge Two Sorted Lists
    LeetCode 20 Valid Parentheses
    图形处理函数库 ImageTTFBBox
    php一些函数
    func_get_arg(),func_get_args()和func_num_args()的用法
    人生不是故事,人生是世故,摸爬滚打才不会辜负功名尘土
  • 原文地址:https://www.cnblogs.com/jimmy-share/p/10605575.html
Copyright © 2011-2022 走看看