美文网首页
Python基础(九): 时间日历

Python基础(九): 时间日历

作者: 伯wen | 来源:发表于2018-01-14 20:36 被阅读29次

    Python 程序能用很多方式处理日期和时间, 转换日期格式是一个常见的功能

    time模块: 提供了处理时间和表示之间的转换功能

    • 获取当前时间戳:

      • 从0时区的1970年1月1日0时0分0秒, 到所给定日期时间的秒数
      import time
      result = time.time()
      print(result)       # 打印 1515834955.7807639
      
    • 获取时间元组

      • time.localtime([seconds]): seconds为时间戳, 可选参数, 不写默是当前时间戳
      • 年, 月, 日, 时, 分, 秒, 本周第几天, 本年第几天, 是否是夏令时
      import time
      result = time.localtime()
      print(result)       
      # 打印: time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=17, tm_min=18, tm_sec=43, tm_wday=5, tm_yday=13, tm_isdst=0)
      
    • 时间戳和时间元组之间的转换

      • 时间戳 -> 时间元组
      import time
      t = time.time()
      result = time.localtime(t)
      print(result)
      # 打印: time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=18, tm_min=6, tm_sec=45, tm_wday=5, tm_yday=13, tm_isdst=0)
      
      • 时间元组 -> 时间戳
      import time
      time_tuple = time.localtime()
      result = time.mktime(time_tuple)
      print(result)       # 打印: 1515838278.0
      
    • 获取格式化的时间

      • 秒 -> 可读时间: time.ctime([seconds]), seconds同上
      import time
      result = time.ctime()
      print(result)       # 打印: Sat Jan 13 17:24:46 2018
      
      • 时间元组 -> 可读时间: time.asctime[p_tuple]: p_tuple时间元组, 可选项, 默认当前时间
      import time
      time_tuple = time.localtime()
      result = time.asctime(time_tuple)
      print(result)       # 打印: Sat Jan 13 17:28:10 2018
      
    • 格式化日期字符串 <--> 时间元组

      • 时间元组 -> 格式化日期: time.strftime(格式字符串, 时间元组)
      import time
      time_tuple = time.localtime()
      result = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
      print(result)       # 打印: 2018-01-13 18:19:56
      
      • 格式化日期 -> 时间元组: time.strptime(日期字符串, 格式符字符串)
      import time
      timeString = "2018-01-13 18:22:30"
      result = time.strptime(timeString, "%Y-%m-%d %H:%M:%S")
      print(result)       
      # 打印: time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=18, tm_min=22, tm_sec=30, tm_wday=5, tm_yday=13, tm_isdst=-1)
      
    • 常用格式符

      %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 当前时区的名称
      %% %号本身
      
    • 获取当前CPU时间

      • time.clock(): 返回浮点数, 秒数, 可用来统计一段代码的运行时间
      import time
      start = time.clock()
      
      for i in range(10000):
          print(i)
          
      end = time.clock()
      print(end - start)
      
    • 休眠n秒: 推迟线程的执行, 可简单理解为, 让程序暂停

      • time.sleep(secs)
      # 沉睡五秒
      import time
      time.sleep(5)
      

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

    • 获取某月日历
      import calendar
      result = calendar.month(2018, 1)
      print(result)
      
      # 打印:
          January 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
      

    datetime模块: Python处理日期和时间的标准库

    这个模块里面有datetime类,此外常用的还有date类,以及time类, 可以做一些计算之类的操作

    • 获取当天日期
    import datetime
    result = datetime.datetime.now()
    print(result)       # 打印: 2018-01-14 20:27:34.287719
    
    • 获取当年日期的年月日时分秒
    import datetime
    t = datetime.datetime.today()
    # 年
    year = t.year
    # 月
    month = t.month
    # 日
    day = t.day
    # 时
    hour = t.hour
    # 分
    minute = t.minute
    # 秒
    second = t.second
    
    • 计算n天之后的日期
    import datetime
    
    t = datetime.datetime.today()
    result = t + datetime.timedelta(days=7)
    
    print(t)                # 打印: 2018-01-14 20:32:22.389295
    print(result)           # 打印: 2018-01-21 20:32:22.389295
    
    • 获取两个日期的时间差
    import datetime
    first = datetime.datetime(2018, 1, 1, 0, 0, 0)
    second = datetime.datetime(2017, 1, 1, 0, 0, 0)
    result = first - second
    print(result.total_seconds())       # 打印: 31536000.0
    

    相关文章

      网友评论

          本文标题:Python基础(九): 时间日历

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