美文网首页
python中的datetime模块

python中的datetime模块

作者: 转身丶即天涯 | 来源:发表于2019-03-21 18:21 被阅读0次

    参考自python3.6官方文档,无脑翻译,仅供参考。


    datetime对象

    datetime对象是一个包含了date对象和time对象所有信息的独立对象。和date对象一样,datetime假定当前格林尼治时间想两侧延伸,也像time对象一样,datetime对象假定一天有3600 * 24秒。

    datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

    year,month,day为必须参数。
    tzinfo可以为None,也可以是tzinfo子类的实例。
    其余为整数。
    各项取值范围,如图:


    image.png

    如果任意一个参数在给定的取值范围之外,会引发ValueError异常。

    备注:fold参数为python 3.6新添加的参数。至于fold参数啥意思,干啥的,我也不知道,因为文档里没写。


    类方法(classmethod)

    datetime.today()

    返回不包含时区信息的当前时间。这等价于datetime.fromtimestamp(time.time())

    from datetime import datetime
    import time
    
    # datetime.today()
    dt1 = datetime.today()
    print(dt1, type(dt1))
    
    dt2 = datetime.fromtimestamp(time.time())
    print(dt2, type(dt2))
    
    image.png
    datetime.now(tz=None)

    返回当前当地日期和时间,如果可选参数tz为None或者没被指定,就和today()函数效果一样。
    但是,应该尽可能的提供更多信息,反正比time.time()获得的时间戳更好。(例如,这可能在不同平台提供C语言的gettimeofday()方法)。

    如果tz不为None,那它一定是tzinfo子类的实例,并且当前日期和时间会被转换为tz的时区。
    备注:tzinfo是一个抽象类,无法被直接实例化,你要想用的话必须新建一个类,并继承自tzinfo。
    在说一句,tzinfo位于datetime.tzinfo。

    dt3 = datetime.now()
    print(dt3, type(dt3))
    
    image.png
    datetime.utcnow()

    返回没有时区的当前UTC日期和时间。和now()一样,但是作为一个理想时间(naive datetime)对象返回当前UTC日期和时间。
    意识到当前UTC时间能被datetime.now(timezone.utc)遵守。

    dt5 = datetime.now(timezone.utc)
    print(dt5, type(dt5))
    
    image.png
    datetime.fromtimestamp(timestamp, tz=None)

    根据POSIX时间戳返回当地日期和时间,例如通过time.time()返回时间戳(也叫Unix时间戳)。
    如果可选参数tz是None或者没有指定,时间戳被转换为操作系统的本地日期和时间,并返回的是理想时间的datetime。

    如果tz不为None,那么它必须是tzinfo的子类的实例,并且时间戳被转换为tz的时区。
    在这种情况下,结果等同于tz.fromutc(datetime.utcfromtimestamp(timestamp).replace(tzinfo=tz))。

    fromtimestamp()可能会已发OverflowError异常,如果timestamp超过了当前操作系统的C语言的localtime()函数 或 gmtime()函数所支持的值,则会引发OSError异常。

    timestamp = time.time()
    datetime_from_timestamp = datetime.fromtimestamp(timestamp)
    print(datetime_from_timestamp, type(datetime_from_timestamp))
    
    image.png
    datetime.utcfromtimestamp(timestamp)

    根据POSIX时间戳返回没有时区信息的UTC datetime。有可能会引发OverflowError,当timestamp超过了当前操作系统的C函数gmtime()所支持的值时。
    C函数gmtime()失败时,则会引发OSError异常。

    dt5 = datetime.utcfromtimestamp(timestamp)
    print(dt5, type(dt5))
    
    image.png
    datetime.strptime(date_string, format)

    根据date_string返回一个datetime对象,转换时依据format。这等同于datetime(*(time.strptime(date_string, format)[0:6]))

    不写了,回家。

    相关文章

      网友评论

          本文标题:python中的datetime模块

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