美文网首页Selenium-Python
时间模块-datetime

时间模块-datetime

作者: Philosopher_ | 来源:发表于2017-08-09 12:12 被阅读5次

    一.datetime模块有哪几个类?

    • date 类: datetime模块中分管对年,月,日的处理
    • time 类: 分管对时钟,分钟,秒的处理
    • datetime 类: date+time,分管年,月,日,时钟,分钟,秒的处理
    • timedelta 类: 分管时间间隔的处理,比如今天之前的1000天是哪一天,不用转换为时间戳,再计算,可以直接调用对象处理
    • 其他 类

    二.datetime类

    一般调用的时候,用的最多的也是这个datetime类(毕竟它会的比较多@_@)

    from datetime import datetime  # 前面一个是模块的名称,后面一个是类的名称,建议大家调用datetime类的时候采取这种方式,简单而清晰
    

    1.怎么获取这个类的对象?

    对面向对象编程有些了解的都知道,既然类都出现了,就一定有这个类的对象,可是有哪些方法获取?

    • 获取指定日期和时间:
    from datetime import datetime
    special = datetime(2017, 8, 9, 12, 20, 20)  # 类的前三个参数年,月,日必须有
     # special是一个datetime对象,print输出,得到的是:2017-08-09 12:20:20
    
    • 获取当前日期和时间
    from datetime import datetime
    now = datetime.now()  # 获取此时的这个时间刻度的datetime对象
    

    2.datetime对象和时间戳之间的转换

    • datetime对象转换为时间戳:
    time_stamp = special.timestamp()  # 1502252420.0
    
    • 时间戳转换为datetime对象:
    another_special = datetime.fromtimestamp(time_stamp)  # 2017-08-09 12:20:20(本地时间:东八区)
    another_special_utc = datetime.utcfromtimestamp(time_stamp)  # 2017-08-09 04:20:20(UTC标准时区时间,比本地时间晚八个小时)
    

    3.datetime对象和时间字符串之间的转换

    • datetime对象转换为时间字符串:
    from datetime import datetime
    special = datetime(2017, 8, 9, 12, 20, 20) # special为datetime对象
    time_string = special.strftime('%Y-%m-%d %X')  # 2017-08-09 12:20:20
    # 注:datetime类中的strftime()是对象方法,调用该方法的是一个实例化的datetime对象;不像time中,调用的是time类
    
    • 时间字符串转换为datetime对象:
    again_special = datetime.strptime(time_string, '%Y-%m-%d %X')  # datetime对象
    

    注:

    1. datetime中,时间戳和时间字符串,以及datetime对象三者之间,其中datetime是桥梁,是中间人!
    2. 在上述方法中,除了strftime方法和timestamp()是对象方法外,其他的都是类方法直接调用的

    Last:时间间隔处理(timedelta)

    >>> from datetime import datetime, timedelta
    >>> now = datetime.now()
    >>> print(now)
    2017-08-09 12:02:08.850243
    >>> s1 = now + timedelta(hours=10)  # 十小时后是什么时间?
    >>> print(s1)
    2017-08-09 22:02:08.850243
    >>> s2 = now - timedelta(days=1000)  # 1000天前是什么日子?
    >>> print(s2)
    2014-11-13 12:02:08.850243
    >>> s3 = now + timedelta(days=2, hours=43)  # 两天后,再多个43小时后是什么日子?
    >>> print(s3)
    2017-08-13 07:02:08.850243 
    >>>
    

    其他:

    datetime对象还有许多非常有用的属性,如:对象.year,对象.month

    两篇非常有用的datetime文章:

    相关文章

      网友评论

        本文标题:时间模块-datetime

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