zoukankan      html  css  js  c++  java
  • time和datetime的常用方法

    1.time模块

      time模块以下时间表示方法。

    • 第1种是:时间戳的方式。是基于1970年1月1日0时0分0秒的偏移。浮点数。
    • 第2种是:struct_time()类型的表示方法。gmtime()和localtime()可以将时间戳显示为struct_time()类型。
    • 第3种是:格式化时间。其中strftime()函数可以把struct_time()时间格式化显示。

    1.1time模块的三类函数

    1、时间获取:time()ctime()gmtime()

    • time.time() 获取当前时间,浮点数
    import time
    
    print(time.time())  # 1607849520.680959
    • time.ctime()获取当前时间并以易读方式表示,返回字符串
    import time
    
    print(time.ctime())  # Sun Dec 13 16:52:34 2020
    • time.gmtime()表示为计算机可处理的格式
    import time
    
    print(time.gmtime())  # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=13, tm_hour=8, tm_min=53, tm_sec=20, tm_wday=6, tm_yday=348, tm_isdst=0)

    2、时间格式化:strftime() strptime()

    • time.strftime(format[,t]): 根据参数转换一个sturc_time或元组为字符串。
    import time
    print(time.strftime("%Y-%m-%d", time.localtime()))  # 2020-12-13
    • time.strptime(string[, format]): 与strftime相反,返回一个struct_time。
    import time
    print(time.strptime("2020-12-13 16:56:22", "%Y-%m-%d %X"))  # time.struct_time(tm_year=2020, tm_mon=12, tm_mday=13, tm_hour=16, tm_min=56, tm_sec=22, tm_wday=6, tm_yday=348, tm_isdst=-1)

    3、程序计时:sleep()perf_counter()

    • time.perf_counter() 返回一个cpu级别的精准时间计数值,单位为秒 计数值不缺定,连续调用差值有意义
    • time.sleep(s) s是休眠的时间 单位可以是秒可以是浮点数
    import time
    time.sleep(2)
    print("暂停:", time.perf_counter())  # 暂停: 2.0616361

    2.datetime模块

      datetime是python当中比较常用的时间模块,主要是输出格式化和操作提供高效的属性提取功能。

    datetime.date 表示日期,常用的属性有:year, month和day
    datetime.time 表示时间,常用属性有:hour, minute, second, microsecond
    datetime.datetime 表示日期时间
    datetime.timedelta 表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单位)可达到微秒
    datetime.tzinfo 时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的而调整。
    datetime.timezone 实现tzinfo抽象基类的类,表示与UTC的固定偏移量

    1、datetime.datetime

    • datetime.datetime.now():返回系统当前时间(2020-07-16 18:39:55.921602)
    • datetime.datetime.now().date():返回当前时间的日期(2020-07-16)
    • datetime.datetime.now().time():返回当前时间的时分秒(18:40:24.946237)
    • datetime.datetime.ctime():将datetime.datetime类型转化成str类型
    import datetime
    a = datetime.datetime.now()
    print(a)  # 2020-12-13 17:04:35.186835
    timeapp = datetime.datetime.ctime(a)
    print(type(timeapp))  # <class 'str'>
    print(timeapp)  # Sun Dec 13 17:03:36 2020

    时间格式转化成字符串

    import datetime
    print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))  # 2020-12-13 17:07:04

    字符串转化成时间格式

    a = datetime.datetime.strptime('2020-12-13 17:08:36', '%Y-%m-%d %H:%M:%S')
    print(type(a))  # <class 'datetime.datetime'>
    print(a)  # 2020-12-13 17:08:36

    2、datetime.timedelta

      timedelta对象表示两个不同时间之间的差值。如果使用time模块对时间进行算术运行,只能将字符串格式的时间和struct_time格式的时间对象先转换为时间戳格式,然后对该时间戳加上或减去n秒,最后再转换回struct_time格式或字符串格式,这显然很不方便。而datetime模块提供的timedelta类可以让我们很方面的对datetime.date, datetime.time和datetime.datetime对象做算术运算,且两个时间之间的差值单位也更加容易控制。

      datetime.timedelta()添加参数,如计算300天是几号。

    import datetime
    timeapp = datetime.datetime.now().date()
    print(type(timeapp))  # <class 'datetime.date'>
    print(timeapp)  # 2020-12-13
    delta = datetime.timedelta(days=300)
    print(timeapp - delta)  # 2020-02-17

      datetime.timedelta()也可以多个参数,如计算300天12小时前的时间。

    import datetime
    timeapp = datetime.datetime.now()
    print(type(timeapp))  # <class 'datetime.datetime'>
    print(timeapp)  # 2020-12-13 17:14:35.253393
    delta = datetime.timedelta(days=300, hours=12)
    print(timeapp - delta)  # 2020-02-17 05:14:35.253393

      计算天数和秒数。

    import datetime
    
    print(datetime.timedelta(days=1, hours=32).days)  # 2
    print(datetime.timedelta(days=1, hours=32).total_seconds())  # 201600.0
  • 相关阅读:
    Maximum Profit Aizu
    Maximum Profit Aizu
    Codeforces Round #552 (Div. 3) —— B. Make Them Equal
    Codeforces Round #552 (Div. 3) —— B. Make Them Equal
    每周一题 —— 3n+1问题
    每周一题 —— 3n+1问题
    Georgia and Bob POJ
    Georgia and Bob POJ
    LeetCode 292. Nim Game
    OpenCV:初试牛刀-带滚动条的视频播放-2
  • 原文地址:https://www.cnblogs.com/zhuzhaoli/p/13871501.html
Copyright © 2011-2022 走看看