• python基础-time和datetime模块


    time模块和datetime模块

    time模块

    time模块中时间表现的格式主要有3种:

    • timestamp 时间戳:表示的是从1970年01月01日 00:00:00开始按秒计算的偏移量。即从1970年01月01日 00:00:00 距离当前时间,以秒为单位的总时间

    • Format String 格式化时间: 已格式化的结构使时间更具可读性。包括自定义格式和固定格式。可用于拼接用户时间格式并保存使用

    • struct_time 格式化时间对象:时间元组,元组中有9个元素组,分别代表:年、月、日、时、分、秒、一周的第几天(0-6),一年的第几天,是否为夏令时(-1)

    时间格式转换图

    时间格式转换图

    注意:格式化时间转化为时间戳,再转化为格式化时间时,gmtime()和localtime()结果可能会相差一天

    原因:gmtime转出来的是格林威治标准时间,localtime是将时区考虑在内了

    import time
    
    # time() 获取当前时间戳
    timestamp1 = time.time()
    print(f"当前时间戳:{timestamp1}")  # 输出结果:1573889052.7453291
    
    # 获取当前年月日(yyyy-MM-dd)
    str_day = time.strftime("%Y-%m-%d")
    print(f"格式化后的年月日:{str_day}")  # 输出结果:2019-11-16
    # 获取当前年月日时分秒(yyyy-MM-dd hh:mm:ss)
    # %X 和 %H:%M:%S 效果是一样的
    str_time = time.strftime("%Y-%m-%d %H:%M:%S")
    str_time1 = time.strftime("%Y-%m-%d %X")  # 建议使用这种
    print(f"[%H:%M:%S]格式化后的年月日时分秒:{str_time}")
    # 输出结果:2019-11-16 15:24:12
    print(f"[%X]格式后的年月日时分秒:{str_time1}")
    # 输出结果:2019-11-16 15:24:12
    
    # localtime() 获取当前时区时间对象,东八区(北京时间)
    time_obj = time.localtime()
    print(f"localtime获取的时间对象:{time_obj}")
    # gmtime() 获取格林威治时间对象
    time_obj2 = time.gmtime()
    print(f"gmtime获取的时间对象:{time_obj2}")
    
    # 时间戳转换成时间对象 localtime/gmtime
    struct_stamp = time.localtime(time.time())
    struct_stamp2 = time.gmtime(time.time())
    print(f"localtime:{struct_stamp}")
    print(f"gmtime:{struct_stamp2}")
    
    # mktime() 将时间对象转换成时间戳
    stamp_mk = time.mktime(time.localtime())
    print(f"当前时间对象:{stamp_mk}")
    
    # 格式化时间转换成时间对象 strptime
    struct_for = time.strptime("2019-10-22", "%Y-%m-%d")
    print(f"strptime:{struct_for}")
    
    # 时间戳转换成格式化时间 ctime
    res = time.ctime(1573888219)
    print(res)  # 固定的时间格式:Sat Nov 16 15:10:19 2019
    
    # 时间对象转换成格式化时间 asctime
    # 2019-09-18 17:23:34 后续3个数字随意输入的
    tup_time = (2019, 9, 18, 17, 23, 34, 1, 3, 14)
    res_time = time.asctime(tup_time)
    print(res_time)  # 固定的时间格式:Tue Sep 18 17:23:34 2019
    
    • strftime的格式码
    格式 含义
    %Y 年份,例:2019
    %m 月份,格式为XX,[01-12]
    %d 天,格式为XX, [01,31].
    %H 时,24小时制, [00,23].
    %M 分, [00,59].
    %S 秒 [00,61]. 60是闰秒,61因历史原因保留

    datetime模块

    import datetime
    
    # 获取当前年月日
    print(datetime.date.today())
    
    # 获取当前年月日时分秒
    print(datetime.datetime.today())
    
    # datetime.datetime.today() 获取的是一个时间对象
    time_obj = datetime.datetime.today()
    print(f"年:{time_obj.year}")
    print(f"月:{time_obj.month}")
    print(f"日:{time_obj.day}")
    
    '''
    日期/时间的计算
        日期时间 = 日期时间 “+” or “-” 时间对象
        时间对象 = 日期时间 “+” or “-” 日期时间
    '''
    # 当前时间
    current_time = datetime.datetime.now()
    # timedelta:日期时间间隔对象
    time_object = datetime.timedelta(days=7)
    # 获取7天之后的时间
    later_time = current_time + time_object
    print(later_time)
    
    # 日期/时间 之间计算,返回时间对象
    timestamp = current_time - later_time
    print(timestamp)
    
  • 相关阅读:
    WPF-ListView单元格设置文字换行
    WPF-GridView设置列宽按比例分配
    C#控制台输入密码星号显示
    安装pycharm
    超强的链接2
    redis
    day 46 htmljianjie
    day45 html超文本标记语言
    43 非阻塞 io多路复用
    42 队列 线程池 协程 geven模块 协程完成的socket
  • 原文地址:https://www.cnblogs.com/xiaodan1040/p/11872271.html
Copyright © 2020-2023  润新知