zoukankan      html  css  js  c++  java
  • Python中的日期与时间常用方法总结

    datetime模块

    时间格式化成字符串

    >>> import datetime
    >>> now = datetime.datetime.now()
    >>> now
    datetime.datetime(2017, 11, 24, 16, 14, 18, 307941)
    >>> now.strftime("%Y")
    '2017'
    >>> now.strftime("%Y-%m")
    '2017-11'
    >>> now.strftime("%Y-%m-%d")
    '2017-11-24'
    >>> now.strftime("%Y-%m-%d %H")
    '2017-11-24 16'
    >>> now.strftime("%Y-%m-%d %H:%m")
    '2017-11-24 16:11'
    >>> now.strftime("%Y-%m-%d %H:%M")
    '2017-11-24 16:14'
    >>> now.strftime("%Y-%m-%d %H:%M:%s")
    '2017-11-24 16:14:1511511258'
    >>> now.strftime("%Y-%m-%d %H:%M:%S")
    '2017-11-24 16:14:18'
    >>> now.strftime("%Y-%m-%d %H:%M:%S")
    '2017-11-24 16:14:18'
    >>> now.strftime("%Y-%m-%d %H:%M:%S")
    '2017-11-24 16:14:18'
    

    字符串转为datetime对象

    >>> a='2017-11-24 16:14:18'
    >>> a = datetime.datetime.strptime(a,"%Y-%m-%d %H:%M:%S")
    >>> a
    datetime.datetime(2017, 11, 24, 16, 14, 18)
    >>> a.day
    24
    >>> a.day+10
    34
    >>> a.day*20
    480
    

    时间对象的计算

    增加减少计算

    >>> a
    datetime.datetime(2017, 11, 24, 16, 14, 18)
    >>> diff=datetime.timedelta(days=3)  # 三天后的日期
    >>> a+diff
    datetime.datetime(2017, 11, 27, 16, 14, 18)
    >>> diff=datetime.timedelta(days=10)  # 十天后
    >>> a+diff
    datetime.datetime(2017, 12, 4, 16, 14, 18)
    
    • 支持的参数:
      days=None seconds=None microseconds=None milliseconds=None minutes=None hours=None weeks=None

    相差计算

    >>> a
    datetime.datetime(2017, 11, 24, 16, 14, 18)
    >>> b = datetime.datetime.now()
    >>> b-a
    datetime.timedelta(0, 1184, 69232)
    >>> c = b-a
    >>> c.seconds
    1184
    >>> c.total_seconds()
    1184.069232
    >>> c.days
    0
    

    time模块

    时间戳

    >>> import time
    >>> time.time()
    1511512640.6861482
    

    获取当前时间

    time.localtime()
    time.struct_time(tm_year=2017, tm_mon=11, tm_mday=24, tm_hour=16, tm_min=39, tm_sec=23, tm_wday=4, tm_yday=328, tm_isdst=0)
    >>> a = time.localtime()
    >>> a.tm_year
    2017
    >>> a.tm_year+1
    2018
    >>> a.tm_hour+10
    26
    

    其他格式

    >>> a = time.asctime()
    >>> a
    'Fri Nov 24 16:40:58 2017'
    

    自定义格式

    >>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    '2017-11-24 16:42:48'
    
    >>> time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 
    'Fri Nov 24 16:43:10 2017'
    

    将字符串格式化为struct_time对象

    >>> a = '2017-11-24 16:42:48'
    >>> time.strptime(a,"%Y-%m-%d %H:%M:%S")
    time.struct_time(tm_year=2017, tm_mon=11, tm_mday=24, tm_hour=16, tm_min=42, tm_sec=48, tm_wday=4, tm_yday=328, tm_isdst=-1)
    >>> b = time.strptime(a,"%Y-%m-%d %H:%M:%S")
    >>> b.tm_mday
    24
    

    将time.struct_time对象转换为时间戳

    >>> time.mktime(b)
    1511512968.0
    

    将 datetime 对象转化为时间戳格式

    end_time = datetime.datetime.strptime("20180502202811", "%Y%m%d%H%M%S")
    end_time = time.mktime(end_time.timetuple())
    

    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 当前时区的名称
    %% %号本身
    
  • 相关阅读:
    第一次团队作业
    第二次结对作业
    动态代理与AOP
    笔试题
    java并发面试题(带答案)
    线程问题——同步和死锁
    java线程的方法
    java实现多线程的方法
    使用java闭锁实现并发
    Java多线程——同步问题
  • 原文地址:https://www.cnblogs.com/forsaken627/p/12521947.html
Copyright © 2011-2022 走看看