Python标准库—datetime模块

datetime

时间对象

有两种日期和时间的对象:“无知型“和”感知型“。

  • 感知型:感知型对象有着足以支持一些应用层面算法和国家层面时间调整的信息——例如时区和夏令时,来让自己和其他的感知型对象区别开来。
  • 无知型:无知型对象没包含足够多的信息来明确定位与之相关的 date/time 对象。 无知型对象所代表的是世界标准时间(UTC)、当地时间或者是其它时区的时间完全取决于程序——就像一个数字是代表的是米、英里或者质量完全取决于程序。 无知型对象以忽略了一些现实情况的为代价使得它容易理解和使用。

常量

常量 描述
datetime.MINYEAR datetime.date或者 datetime.datetime对象允许的最小年份。 常量 MINYEAR1
datetime.MAXYEAR datetime.date或者 datetime.datetime对象允许的最大年份。 常量 MAXYEAR是 9999。

子类关系

object
    timedelta
    tzinfo
        timezone
    time
    date
        datetime
  • datetime.date(year,month,day)

    一个理想化的无知型日期,它假设当今的公历在过去和未来永远有效。 属性: year, month, and day

    类方法

    • date.today()

      返回当地的当前日期。

    • date.fromtimestamp(timestamp)

      将时间戳转换为日期。

    实例方法

    • date.replace(year=self.year,month=self.month,day=self.day)

      返回替换之后的日期。

    • date.timetuple()

      将日期转换为time.struct_time对象。

    • date.weekday()

      返回一个整数代表星期几。0代表星期一,1代表星期二…

    • date.isoformat()
      返回一个 ISO 8601 格式的字符串, ‘YYYY-MM-DD’。

    >>> import datetime
    >>> import time
    >>> 
    >>> today = datetime.date.today()
    >>> today
    datetime.date(2019, 8, 20)
    >>> today == datetime.date.fromtimestamp(time.time())
    True
    >>> today.weekday()
    1
    >>> today.isoformat()
    '2017-08-20'
    >>> today.replace(2020,2,29)
    datetime.date(2020, 2, 29)
    >>> today.replace(2020,2,29).timetuple()
    time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=60, tm_isdst=-1)
    
  • datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

    一个理想化的时间,它独立于任何特定的日期,假设每天一共有 246060 秒(这里没有"闰秒"的概念)。 属性: hour, minute, second, microsecondtzinfo

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

    日期和时间的结合。属性:year, month, day, hour, minute, second, microsecond, and tzinfo

    datetime.datetime对象是一个包含了来自datetime.date对象和 datetime.time 对象所有信息的单一对象。 与 date 对象一样,datetime.datetime 假定当今的格列高利历向前后两个方向无限延伸;与 datetime.time 对象一样,datetime.datetime假定每一天恰好有 3600*24 秒。

    类方法

    • datetime.datetime.now(tz=None)

      返回当前的本地 date 和 time。 如果可选参数 tzNone 或未指定,这就类似于 datetime.datetime.today()

    • datetime.datetime.today()

      返回当前的本地 datetime,tzinfo值为 None。 这等价于 datetime.datetime.fromtimestamp(time.time())

    >>> from datetime import datetime
    >>> import time
    >>> datetime.today()
    datetime.datetime(2019, 8, 20, 20, 33, 55, 195660)
    >>> datetime.now()
    datetime.datetime(2019, 8, 20, 20, 34, 3, 170206)
    >>> datetime.fromtimestamp(time.time())
    datetime.datetime(2019, 8, 20, 20, 34, 41, 958449)
    
  • datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

    表示两个 datetime.date对象或者 datetime.time 对象,或者 datetime.datetime对象之间的时间间隔,精确到微秒。

    注意:无知型和感知型之间的差别不适用于 datetime.timedelta 对象。

    >>> from datetime import timedelta
    >>> year = timedelta(days=365)
    >>> another_year = timedelta(weeks=40, days=84, hours=23,
    ...                          minutes=50, seconds=600)  # adds up to 365 days
    >>> another_year
    datetime.timedelta(days=365)
    >>> year.total_seconds()
    31536000.0
    >>> year == another_year
    True
    >>> ten_years = 10 * year
    >>> ten_years.days
    3650
    
  • datetime.tzinfo

    一个描述时区信息的抽象基类。用于给 datetime.datetime类和 datetime.time类提供自定义的时间调整概念(例如,负责时区或者夏令时)。

  • datetime.timezone

    一个实现了 datetime.tzinfo 抽象基类的子类,用于表示相对于 世界标准时间(UTC)的偏移量。

你可能感兴趣的:(Python)