美文网首页开源优测
[快学Python3]日期和时间处理

[快学Python3]日期和时间处理

作者: 苦叶子 | 来源:发表于2017-07-06 10:28 被阅读708次

    概述

    在python中, date、time、datetime类提供了一系列处理日期、时间和时间间隔的函数。

    在Python里我们大致可以把其实现日期时间类分为5个:

    • date
      仅用于日期处理(年、月、日)

    • time
      仅用于时间处理(时、分、秒、毫秒)

    • datetime
      可以处理日期和时间的组合(年、月、日、时、分、秒、毫秒)

    • timedelta
      日期时间处理,可以用于时间差运算等

    • tzinfo
      用于时区处理

    下面我们一起看几个实例来看看上述几个类的应用,在本文中不会列举所有的应用方法。

    基础实例

    直接上代码,一起来看看日期和时间的一些基础处理技巧:

    # -*- coding:utf-8 -*-
    
    __author__ = '苦叶子'
    
    # 导入日期和时间
    from datetime import date
    from datetime import time
    from datetime import datetime
    
    
    if __name__ == "__main__":
        # 获取下今天的的日期
        today = date.today()
        print("今天是 %s" % today)
    
        # 把今天的日期年月日分开,重新格式化下一下
        print("今天是 %s %s %s" % (today.day, today.month, today.year))
    
        # 看下今天是星期几
        # 星期几    序号
        # Monday     0
        # Tuesday    1
        # Wednesday  2
        # Thursday   3
        # Friday     4
        # Saturday   5
        # Sunday     6
        # weekday会获取到对应的序号,请根据序号对上上述表,来看是星期几
        weekday_num = today.weekday()
        print("今天weekday是 %s" % weekday_num)
    
        # 输出可读性更好的星期几
        weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
        print("今天是 %s" % weekdays[weekday_num])
    
    
        print("-" * 30)
    
        # 看看现在的时间
        today_now =  datetime.now()
        print("现在是 %s" % today_now)
    
        # 用time来构造个时间出来
        t = time(hour=12, minute=20, second=30, microsecond=200)
        print("我们自己造的时间是 %s" % t)
        
        # 再造个日期时间出来试试
        d = datetime(year=2008, month=8, day=8, hour=8, minute=8, second=8)
        print("我们自己造是日期时间 %s" % d)
    

    格式化日期时间:strftime函数

    大家是不是在各种网站、系统上见过不同格式的日期时间显示?那接下来我们也来做做日期时间的格式化。

    我们需要用到strftime函数,先看一下可用于格式化日期时间的符号:

    %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  当前时区的名称
    %%  %号本身
    

    下面看看怎么把strftime和上述格式化符号结合应用:

    # -*- coding:utf-8 -*-
    
    __author__ = '苦叶子'
    
    import time
    
    if __name__ == "__main__":
        # time.strftime(format[, t])
    
        # 先看下当前默认格式化的时间
        localtime = time.asctime(time.localtime())
        print("当前默认日期时间格式: %s" % localtime)
    
        # 格式化为: 年-月-日 时:分:秒 星期几
        print("24小时制全格式:", time.strftime("%Y-%m-%d %H:%M:%S %A", time.localtime()))
        print("12小时制缩写格式:", time.strftime("%Y-%m-%d %I:%M:%S %a", time.localtime()))
    
        # 带a.m. 或 p.m. 标识时间格式  %p
        print("带a.m或p.m 24小时制全格式:", time.strftime("%Y-%m-%d %H:%M:%S %p %A", time.localtime()))
    
        # 把时区也带上看看 %z
        print("带时区的全格式:", time.strftime("%Y-%m-%d %H:%M:%S %p %A %z", time.localtime()))
    
        # 格式乱排下试试
        print("随意排格式:", time.strftime("%A %Y-%d-%m %p %H:%M:%S %z", time.localtime()))
    

    时间的格式化不需要太多的技巧,把上述的格式化符号熟练运用就好,多练练就好了。不过关于日期时间的模块所提供的功能,这里仅仅展示了最简单的,更强大的功能,强去查看datetime、time相关的官网文档,以更深入掌握。

    尤其是对datetime和time模块的掌握很重要!!!

    对于timedelta和tzinfo大家自行看官方资料学习。3日

    相关文章

      网友评论

        本文标题:[快学Python3]日期和时间处理

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