美文网首页
Python基础08-时间日历

Python基础08-时间日历

作者: Jacob_LJ | 来源:发表于2018-05-06 20:35 被阅读16次

    Python基础-时间日历

    1. time 模块

    • 提供 处理时间 和 展示时间 之间转换的功能

    1.1 获取当前时间戳

    • 时间戳:从0逝去的1970年1月1日0时0分0秒,到所给定日期时间的秒数
    • 时间戳是一个 浮点数
    • 获取方式
    import time
    time.time() 
    

    1.2 获取时间元组

    • 一般python时间函数将时间处理为9个数字的元祖
    • 图解
    序号 含义 属性
    0 4位数 年 tm_year 2008
    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 -1, 0, 1 -1是决定是否是夏令时的标记
    • 获取方式
    import time
    time.localtime([seconds])
    * seconds 可选的时间戳,默认值为当前时间戳
    
    print(localtime())
    >>> time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=19, tm_min=25, tm_sec=34, tm_wday=6, tm_yday=126, tm_isdst=0)
    

    1.3 获取格式化的时间

    • 秒 -> 可读时间
      1525606536.934186 转为 Sun May 6 19:35:15 2018
    import time
    time.ctime([seconds])
    
    eg.
    t = time.time()
    result = time.ctime(t)
    print(result)
    >>> Sun May  6 19:35:15 2018
    
    • 时间元组 -> 可读时间
      time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=19, tm_min=38, tm_sec=20, tm_wday=6, tm_yday=126, tm_isdst=0) 转为 Sun May 6 19:35:15 2018
    import time
    time.asctime([p_tuple])
    * p_tuple:可选的时间元组,默认当前时间元组
    
    time_tuple = time.localtime()
    result = time.asctime(time_tuple)
    print(result)
    >>> Sun May  6 19:38:20 2018
    

    1.4 格式化日期字符串 < -- > 时间戳

    • 时间元组 -> 格式化日期
    • time.strftime(格式字符串,时间元组):sting + format + time
    time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    >>> 2017-09-02 17:21:00
    
    • 格式化日期 -> 时间元组
    • time.strptime()
    pt = time.strptime("17-09-06 08:57:17", "%y-%m-%d %H:%M:%S")
    
    • 时间元组 -> 时间戳
    • time.mktime
    t = time.mktime(pt)
    
    • 常用格式符
    格式符 表达
    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12)
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称

    1.5 获取当前 CPU 时间

    • time.clock(),返回浮点数的秒数
    • 一般用于统计代码执行时间
    start = time.clock()
    for i in range(0, 10000):
      print(i)
    end = time.clock()
    print(end - start)
    

    1.6 休眠 n 秒

    • 推迟线程的执行,可简单理解为,让程序暂停
    • time.sleep(secs)
    while True:
         result = time.strftime("%y===%m-%d %H:%M:%S", time.localtime())
         print(result)
         time.sleep(1)
    

    2. calendar 模块

    • 提供与日历相关功能,如:为给定的月份或年份,打印文本日历

    2.1 获取某月日历

    import calendar
    c = calendar.month(2018, 5)
    print(c)
    
    >>>
    
          May 2018
    Mo Tu We Th Fr Sa Su
        1  2  3  4  5  6
     7  8  9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31
    
    

    3. datetime 模块

    • python 处理日期和时间的标准库
    • 常用 datetime 类,及 date 类 和 time 类
    • 可做计算之类的操作

    3.1 获取当天日期

    import datetime
    n = datetime.datetime.now()
    t = datetime.datetime.today()
    print(n)
    print(t)
    

    3.2 单独获取当前的年月日时分秒

    import datetime
    t = datetime.datetime.today()
    
    print(type(t))
    
    print(t.year)
    print(t.month)
    print(t.day)
    print(t.hour)
    print(t.minute)
    print(t.second)
    

    3.3 计算 n 天之后的日期

    import datetime
    
    t = datetime.datetime.today()
    result = t + datetime.timedelta(days=7)
    print(t, result)
    

    3.4 获取两个日期时间的时间差

    import datetime
    first = datetime.datetime(2017, 9, 2, 12, 00, 00)
    second = datetime.datetime(2017, 9, 3, 12, 00, 00)
    # print(first, type(first))
    
    delta = second - first
    print(delta, type(delta)) 
    print(delta.total_seconds())
    
    >>>
    
    1 day, 0:00:00 <class 'datetime.timedelta'>
    86400.0
    

    相关文章

      网友评论

          本文标题:Python基础08-时间日历

          本文链接:https://www.haomeiwen.com/subject/howurftx.html