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~

  • 相关阅读:
    Java高级工程师面试题总结及参考答案
    Java面试通关要点汇总整理【终极版】
    40道Java基础常见面试题及详细答案
    Java方向如何准备BAT技术面试答案(汇总版)
    10-01 Java 类,抽象类,接口的综合小练习--运动员和教练
    div在页面垂直居中方法---增强改进版
    TortoiseSVN切换更改登录账号密码
    09-04 java 接口
    09-03 Java 抽象类
    09-02 java 多态
  • 原文地址:https://www.cnblogs.com/jimmy-share/p/10605575.html
Copyright © 2011-2022 走看看