zoukankan      html  css  js  c++  java
  • 时间模块

    时间模块

    1 时间模块优先掌握的操作

    1.1 time模块

    时间分为三种格式:

    1.1.1 时间戳

    时间戳是从1970年到现在经过的秒数
    作用:用于时间间隔的计算

    import time
    
    print(time.time())
    

    1.1.2 格式化时间

    按照某种格式显示的时间:2020-03-30 11:11:11
    作用:用于展示时间

    import time
    
    print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
    print(time.strftime('%Y-%m-%d %X'))
    
    %a    Locale’s abbreviated weekday name.     
    %A    Locale’s full weekday name.     
    %b    Locale’s abbreviated month name.     
    %B    Locale’s full month name.     
    %c    Locale’s appropriate date and time representation.     
    %d    Day of the month as a decimal number [01,31].     
    %H    Hour (24-hour clock) as a decimal number [00,23].     
    %I    Hour (12-hour clock) as a decimal number [01,12].     
    %j    Day of the year as a decimal number [001,366].     
    %m    Month as a decimal number [01,12].     
    %M    Minute as a decimal number [00,59].     
    %p    Locale’s equivalent of either AM or PM.    (1)
    %S    Second as a decimal number [00,61].    (2)
    %U    Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0.    (3)
    %w    Weekday as a decimal number [0(Sunday),6].     
    %W    Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0.    (3)
    %x    Locale’s appropriate date representation.     
    %X    Locale’s appropriate time representation.     
    %y    Year without century as a decimal number [00,99].     
    %Y    Year with century as a decimal number.     
    %z    Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59].     
    %Z    Time zone name (no characters if no time zone exists).     
    %%    A literal '%' character.
    
    格式化字符串的时间格式
    

    1.1.3 结构化的时间

    作用:用于单独获取时间的某一部分

    import time
    
    res=time.localtime()
    print(res)
    print(res.tm_year)
    print(res.tm_yday)
    # time.struct_time(tm_year=2020, tm_mon=3, tm_mday=30, tm_hour=22, tm_min=22, tm_sec=17, tm_wday=0, tm_yday=90, tm_isdst=0)
    # 2020
    # 90
    

    1.1.4 sleep

    可以将代码等待一定时间

    import time
    time.sleep(3)
    

    1.2 datetime模块

    import datetime
    # 可以直接做时间的加减
    
    print(datetime.datetime.now())
    print(datetime.datetime.now() + datetime.timedelta(days=3))
    print(datetime.datetime.now() + datetime.timedelta(weeks=1))
    

    2 时间模块需要掌握的操作

    2.1 时间格式的转换

    2.1.1 struct_time->时间戳

    import time
    s_time=time.localtime()
    print(time.mktime(s_time))
    

    2.1.2 时间戳->struct_time

    import time
    tp_time=time.time()
    print(time.localtime(tp_time))
    
    print(time.localtime())# 本地时间
    print(time.gmtime()) # 世界标准时间
    print(time.localtime(333333333))
    print(time.gmtime(333333333))
    

    2.1.3 struct_time->格式化的字符串形式的时间

    import time
    s_time=time.localtime()
    
    print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))
    

    2.1.4 格式化的字符串形式的时间->struct_time

    import time
    
    print(time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S'))
    

    2.1.5 format string<------>timestamp

    # 如果想实现'1988-03-03 11:11:11'+7天
    
    # format string--->struct_time--->timestamp
    struct_time=time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S')
    timestamp=time.mktime(struct_time)+7*24*3600
    print(timestamp)
    
    # format string<---struct_time<---timestamp
    res=time.strftime('%Y-%m-%d %X',time.localtime(timestamp))
    print(res)
    

    3 时间模块仅需了解的操作

    import time
    print(time.asctime())
    # Mon Mar 30 22:34:59 2020
    
    
    import datetime
    print(datetime.datetime.now())
    # 2020-03-30 22:34:59.313774
    
    print(datetime.datetime.utcnow())
    # 2020-03-30 14:34:59.313774
    
    print(datetime.datetime.fromtimestamp(333333))
    # 1970-01-05 04:35:33
    

    4 实例应用:打印进度条

    import time
    
    def progress(percent):
        if percent > 1:
            percent = 1
        res = int(50 * percent) * '#'
        print('
    [%-50s] %d%%' % (res, int(100 * percent)), end='')
    
    recv_size=0
    total_size=1025011
    
    while recv_size < total_size:
        time.sleep(0.01) # 模拟下载了1024个字节的数据
        recv_size+=1024  # recv_size=1024
    	percent = recv_size / total_size  # 1024 / 333333
    	progress(percent)
    
  • 相关阅读:
    bzoj 1503: [NOI 2004]郁闷的出纳员
    bzoj 1001: [BeiJing2006]狼抓兔子
    bzoj 1005: [HNOI2008]明明的烦恼
    bzoj 1004: [HNOI2008]Cards
    bzoj 1003: [ZJOI2006]物流运输trans
    06day1
    05day2
    04day2
    04day1
    03day2
  • 原文地址:https://www.cnblogs.com/achai222/p/12602190.html
Copyright © 2011-2022 走看看