• python 时间模块小结


    python有两个重要的时间模块,分别是time和datetime

    time模块

    表示时间的几种方法

    时间元组

    time.struct_time(
            tm_year=2016, tm_mon=7, tm_mday=21,
    
            tm_hour=22, tm_min=32, tm_sec=51,
    
            tm_wday=3, tm_yday=203, tm_isdst=0
            ) 

    # 此元组有9个元素(年,月,日,时,分,秒,周几,年中第几天,是否夏令时)

    时间戮

    距离1970-01-01 00:00:00此时间的总秒数

    格式化显示

    (‘%Y-%m-%d %X')等等

    英文显示  

     'Mon Jan 26 00:52:24 1970'

     

    time模块的方法

    time模块关系图

    • 举几个例子

    先设一个时间元组, 9个参数,最后3位可为0

    t = (2016,7,21,22,47,45,0,0,0)

    #给定时间求时间戮:
    In [21]: time.mktime(t)
    Out[21]: 1469112465.0
    
    #求当前时间戮
    In [23]: time.time()
    Out[23]: 1469112643.2187786
    #按指定格式显示时间
    In [25]: time.strftime('%x %X',t) Out[25]: '07/21/16 22:47:45'
    #给定一个时间字符串,按给定格式拆分成数组 
    In [26]: str='2016-04-23 12:34:54'
    In [27]: time.strptime(str,'%Y-%m-%d %X') Out[27]: time.struct_time(tm_year=2016, tm_mon=4, tm_mday=23, tm_hour=12, tm_min=34, tm_sec=54, tm_wday=5, tm_yday=114, tm_isdst=-1)
    In [28]: #英文显示
    
    In [29]: time.asctime(t)
    Out[29]: 'Mon Jul 21 22:47:45 2016'

    time.sleep(秒) 延时给定秒数


    datetime模块

    此模块下有几个子模块:

    • date: 处理年月日,
    • time: 处理分秒时,微秒
    • datetime: 处理年月日,时分秒,微秒,以此为主讲一讲

    datetime子模块的方法

    datetime子模块也有个时间元组,是7个元素,可省略,省略的话默认为0

    datetime子模块说明图

    (图中有个小错误,时间元组是7个元素)

    • 举几个例子
    In [32]: from datetime import datetime
    
    In [33]: #获取当前时间
    
    In [34]: datetime.now()
    Out[34]: datetime.datetime(2016, 7, 21, 23, 12, 51, 572284)
    
    In [35]: datetime.today()
    Out[35]: datetime.datetime(2016, 7, 21, 23, 13, 1, 458328)
    
    In [36]: #获取零时区时间
    
    In [37]: datetime.utcnow()
    Out[37]: datetime.datetime(2016, 7, 21, 15, 13, 40, 754435)
    In [38]: #获取当前时间戮
    
    In [39]: a=datetime.now()
    
    In [40]: a.timestamp()
    Out[40]: 1469114156.388418
    In [42]: #设置一个时间对象
    
    In [43]: d=datetime(2016,7,21,22,23,15)
    
    In [44]: #自定义格式显示
    
    In [45]: d.strftime('%x %X')
    Out[45]: '07/21/16 22:23:15'
    
    In [46]: #显示英文格式
    
    In [47]: d.ctime()
    Out[47]: 'Thu Jul 21 22:23:15 2016'
    
    In [48]: #显示日历(年,年中第几周,周几)
    
    In [49]: d.isocalendar()
    Out[49]: (2016, 29, 4)
    • datetime子模块单位时间间隔:datetime.resolution=1微秒。

        -- date子模块的时间间隔为1天  date.resolution=1天

        -- 时间间隔乘以一个数,表示间隔几天

    In [50]: from datetime import date
    
    In [51]: #现在时间是
    
    In [52]: date.today()
    Out[52]: datetime.date(2016, 7, 21)
    
    In [53]: #100天以前的日期是
    
    In [54]: date.today()-date.resolution*100
    Out[54]: datetime.date(2016, 4, 12)

    6个元素的时间元组可以转换成9个元素的时间元组,供time模块使用

    In [56]: d
    Out[56]: datetime.datetime(2016, 7, 21, 22, 23, 15)
    
    In [57]: d.timetuple()
    Out[57]: time.struct_time(tm_year=2016, tm_mon=7, tm_mday=21, tm_hour=22, tm_min=23, tm_sec=15, tm_wday=3, tm_yday=203, 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 当前时区的名称
    %% %号本身
  • 相关阅读:
    【原】一张图片优化5K的带宽成本
    让手机站点像原生应用的四大途径
    iScroll4下表单元素聚焦及键盘的异常问题
    蜕变·WebRebuild 2013 前端年度交流会邀请
    【原】js实现复制到剪贴板功能,兼容所有浏览器
    【原】css实现两端对齐的3种方法
    【原】常见CSS3属性对ios&android&winphone的支持
    一枚前端开发-页面重构方向的招聘信息
    【原】分享超实用工具给大家
    【原】webapp开发中兼容Android4.0以下版本的css hack
  • 原文地址:https://www.cnblogs.com/bigtreei/p/8360704.html
Copyright © 2020-2023  润新知