美文网首页Python初学者Python
Python datetime时间日期处理

Python datetime时间日期处理

作者: Rethink | 来源:发表于2019-08-06 16:59 被阅读5次

    Python v3.7.0
    import datetime

    datetime模块定义了5个类,分别是:
    - datetime.date:表示日期的类
    - datetime.datetime:表示日期时间的类
    - datetime.time:表示时间的类
    - datetime.timedelta:表示时间间隔,即两个时间点的间隔
    - datetime.tzinfo:时区的相关信息

    datetime.date 表示日期的类

    • 实例化
    someday = datetime.date(year=2019, month=7, day=14)  # 任何一天
    today = datetime.date.today()  # 今天
    print(someday, today)  # 默认格式:%Y-%m-%d
    
    • 指定日期格式
    print(today.strftime('%Y/%m/%d'))  # str, 2019/07/12
    print(today.ctime())  # Fri Jul 12 00:00:00 2019
    print(today.weekday())  # 返回0-6,代表周一到周日,其中周一返回0
    
    print(today.isoformat())  # 2019-07-12
    print(today.isocalendar())  # (2019, 28, 5)
    print(someday.isoweekday())  # 返回的1-7代表周一至周日
    
    • 根据指定时间戳返回一个datetime.date对象
    ts = datetime.date.fromtimestamp(1562677551)
    print(ts, type(ts))
    
    • 替换给定日期,但不改变原日期
    n = today.replace(year=2000, month=1, day=1)  # 2019-07-01
    print(today, n)
    
    • 返回日期对应的time, struct_time对象
    tm = today.timetuple()
    print(tm[0], type(tm))  # 索引取值
    

    datetime.time 表示时间的类

    sometime = datetime.time(hour=21, minute=11, second=55, microsecond=200)    # 任何时间
    print(sometime, type(sometime))  # 21:11:55.000200
    
    # 指定时间格式
    print(sometime.strftime('%H%M%S'))  # 211155
    
    # 替换给定时间,但不改变原时间
    n = sometime.replace(hour=20)
    print(sometime, n)
    
    print(sometime.tzname())  # 返回时区名字
    print(sometime.utcoffset())  # 返回时区的时间偏移量
    

    datetime.datetime 表示日期时间的类

    moment = datetime.datetime(year=2100, month=10, day=1, hour=1, minute=1, second=1, microsecond=1)
    now = datetime.datetime.now()
    print(moment, now)
    
    # 指定格式
    print(now.strftime('%Y%m%d_%H%M%S'))  # 日期格式转换为字符串格式
    print(datetime.datetime.strptime('20190712_152706', '%Y%m%d_%H%M%S'))  # 由字符串格式转化为日期格式
    print(now.date())  # 返回当前日期时间的日期部分
    print(now.time())  # 返回当前日期时间的时间部分
    
    # 根据指定时间戳返回一个datetime.datetime对象
    st = datetime.datetime.fromtimestamp(1562677551)
    print('当前时间为:%s' % st)
    
    # 日期替换
    n = now.replace(hour=20)
    print(now, n)
    

    datetime.timedelta 表示时间间隔的类

    t1 = datetime.datetime(2016, 10, 20)
    t2 = datetime.datetime(2015, 11, 2)
    delta = t2 - t1
    print(delta, type(delta))  # -353 days, 0:00:00 <class 'datetime.timedelta'>
    
    # 计算两个日期之间的天数/秒数差值
    print(abs(delta.days))  # 353
    print(delta.total_seconds())  # -30499200.0 推荐使用此方法
    

    相关文章

      网友评论

        本文标题:Python datetime时间日期处理

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