python_time和datetime

发布时间:2019-05-09 21:56:18编辑:auto阅读(1670)

     time和datatime模块

    时间相关的操作,时间有三种表示方式:

    • 时间戳               1970年1月1日之后的秒,即:time.time()
    • 格式化的字符串    2019-1-1 12:12,    即:time.strftime('%Y-%m-%d')
    • 结构化时间          元组包含了:年、日、星期等... time.struct_time    即:time.localtime()

     

    datetime模块定义了下面这几个类:

    • datetime.date:表示日期的类。常用的属性有year, month, day;
    • datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
    • datetime.datetime:表示日期时间。
    • datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
    • datetime.tzinfo:与时区有关的相关信息。

     

     

    元组(struct_time)方式:

    struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。

    下面列出这种方式元组中的几个元素:

    python中时间日期格式化符号:

    %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. “%p”只有与“%I”配合使用才有效果。

    2. 文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。

    3. 当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。

     

    import time
    
    print(time.time())  # 时间戳, 1970年1月1日之后的秒
    print(time.strftime('%Y-%m-%d %X %p'))  # 格式化的字符串
    
    print(time.localtime())  # 本地时区 =上海时区
    print(time.gmtime())  # UTC时区
    
    print(time.process_time())  # 测量处理器运算时间,不包括sleep时间
    
    print(time.altzone)  # 返回与utc时间的时间差,以秒计算
    print(time.asctime())  # 返回时间格式 Mon Jan 28 13:15:21 2019
    print(time.ctime())
    print(time.gmtime(time.time()-666666666))  # 返回utc时间的struc时间对象格式
    print(time.strptime('2019-1-28', '%Y-%m-%d'))  # 将 日期字符串 转成 struct时间对象格式
    print(time.mktime())  # 将struct时间对象转成时间戳
    
    
    import datetime
    
    print(datetime.datetime.now())  # 返回 2016-08-19 12:47:03.941925
    print(datetime.date.fromtimestamp(time.time()))  # 时间戳直接转成日期格式 2016-08-19
    print(datetime.datetime.now())
    print(datetime.datetime.now() + datetime.timedelta(3))  # 当前时间+3天
    print(datetime.datetime.now() + datetime.timedelta(-3))  # 当前时间-3天
    print(datetime.datetime.now() + datetime.timedelta(hours=3))  # 当前时间+3小时
    print(datetime.datetime.now() + datetime.timedelta(minutes=30))  # 当前时间+30分
    
    c_time = datetime.datetime.now()
    print(c_time.replace(minute=3, hour=2))  # 时间替换
    

     

关键字