DateTime Objects

datetime模块提供了各种日期和时间对象。在使用任何这些Function之前,必须将头文件datetime.h包含在您的源代码中(请注意Python.h不包括此文件),并且必须调用PyDateTime_IMPORT宏,通常将其作为模块初始化Function的一部分。该宏将指向 C 结构的指针放入静态变量PyDateTimeAPI,该变量由以下宏使用。

用于访问 UTC 单例的宏:

3.7 版中的新Function。

Type-check macros:

  • int PyDate_Check(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_DateType或子类型PyDateTime_DateType,则返回 true。 * ob *不得为NULL
  • int PyDate_CheckExact(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_DateType,则返回 true。 * ob *不得为NULL
  • int PyDateTime_Check(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_DateTimeType或子类型PyDateTime_DateTimeType,则返回 true。 * ob *不得为NULL
  • int PyDateTime_CheckExact(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_DateTimeType,则返回 true。 * ob *不得为NULL
  • int PyTime_Check(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_TimeType或子类型PyDateTime_TimeType,则返回 true。 * ob *不得为NULL
  • int PyTime_CheckExact(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_TimeType,则返回 true。 * ob *不得为NULL
  • int PyDelta_Check(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_DeltaType或子类型PyDateTime_DeltaType,则返回 true。 * ob *不得为NULL
  • int PyDelta_CheckExact(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_DeltaType,则返回 true。 * ob *不得为NULL
  • int PyTZInfo_Check(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_TZInfoType或子类型PyDateTime_TZInfoType,则返回 true。 * ob *不得为NULL
  • int PyTZInfo_CheckExact(PyObject ** ob *)

    • 如果* ob *类型为PyDateTime_TZInfoType,则返回 true。 * ob *不得为NULL

创建对象的宏:

  • PyObject * PyDate_FromDate(int ,int ,int )
    • 返回值:新参考.

返回具有指定年,月和日的datetime.date对象。

  • PyObject * PyDateTime_FromDateAndTime(整数,整数,整数,整数小时,整数分钟,整数,整数)
    • 返回值:新参考.

返回具有指定的年,月,日,小时,分钟,秒和微秒的datetime.datetime对象。

  • PyObject * PyDateTime_FromDateAndTimeAndFold(int * year *,int * month *,int * day *,int * hour *,int * minute *,int * second *,int * usecond *,int * fold *)
    • 返回值:新参考.

返回具有指定的年,月,日,小时,分钟,秒,微秒和倍数的datetime.datetime对象。

3.6 版的新Function。

  • PyObject * PyTime_FromTime(int * hour *,int * minute *,int * second *,int * usecond *)
    • 返回值:新参考.

返回具有指定的小时,分钟,秒和微秒的datetime.time对象。

  • PyObject * PyTime_FromTimeAndFold(int * hour *,int * minute *,int * second *,int * usecond *,int * fold *)
    • 返回值:新参考.

返回具有指定的小时,分钟,秒,微秒和倍数的datetime.time对象。

3.6 版的新Function。

  • PyObject * PyDelta_FromDSU(int * days *,int * seconds *,int * useconds *)
    • 返回值:新参考.

返回代表给定天数,秒和微秒的datetime.timedelta对象。执行归一化,以使finally的微秒和秒数位于为datetime.timedelta个对象记录的范围内。

  • PyObject * PyTimeZone_FromOffset(PyDateTime_DeltaType * * offset *)
    • 返回值:新参考.

返回带有由* offset *参数表示的未命名固定偏移量的datetime.timezone对象。

3.7 版中的新Function。

  • PyObject * PyTimeZone_FromOffsetAndName(PyDateTime_DeltaType * * offset *,PyUnicode * * name *)
    • 返回值:新参考.

返回一个datetime.timezone对象,该对象具有由* offset *参数表示的固定偏移量和 tzname * name *。

3.7 版中的新Function。

从日期对象提取字段的宏。参数必须是PyDateTime_Date的实例,包括子类(例如PyDateTime_DateTime)。参数不能为NULL,并且不检查类型:

  • int PyDateTime_GET_YEAR(PyDateTime_Date ** o *)

    • 返回年份,作为一个正整数。
  • int PyDateTime_GET_MONTH(PyDateTime_Date ** o *)

    • 以 1 到 12 之间的整数形式返回月份。
  • int PyDateTime_GET_DAY(PyDateTime_Date ** o *)

    • 以 1 到 31 之间的整数形式返回日期。

从日期时间对象提取字段的宏。参数必须是PyDateTime_DateTime的实例,包括子类。参数不能为NULL,并且不检查类型:

  • int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime ** o *)

    • 以 0 到 23 之间的整数形式返回小时。
  • int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime ** o *)

    • 以 0 到 59 之间的整数形式返回分钟。
  • int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime ** o *)

    • 以 0 到 59 之间的整数形式返回第二个。
  • int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime ** o *)

    • 返回微秒,作为一个从 0 到 999999 的整数。

从时间对象中提取字段的宏。参数必须是PyDateTime_Time的实例,包括子类。参数不能为NULL,并且不检查类型:

  • int PyDateTime_TIME_GET_HOUR(PyDateTime_Time ** o *)

    • 以 0 到 23 之间的整数形式返回小时。
  • int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time ** o *)

    • 以 0 到 59 之间的整数形式返回分钟。
  • int PyDateTime_TIME_GET_SECOND(PyDateTime_Time ** o *)

    • 以 0 到 59 之间的整数形式返回第二个。
  • int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time ** o *)

    • 返回微秒,作为一个从 0 到 999999 的整数。

从时间增量对象提取字段的宏。参数必须是PyDateTime_Delta的实例,包括子类。参数不能为NULL,并且不检查类型:

  • int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta ** o *)
    • 返回天数,以整数形式表示,范围为-999999999 至 999999999.

版本 3.3 中的新Function。

  • int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta ** o *)
    • 返回秒数,从 0 到 86399 之间的整数。

版本 3.3 中的新Function。

  • int PyDateTime_DELTA_GET_MICROSECONDS(PyDateTime_Delta ** o *)
    • 返回微秒数,从 0 到 999999 之间的整数。

版本 3.3 中的新Function。

宏,以方便实现 DB API 的模块:

  • PyObject * PyDateTime_FromTimestamp(PyObject ** args *)
    • 返回值:新参考.

给定一个适合传递给datetime.datetime.fromtimestamp()的参数 Tuples,创建并返回一个新的datetime.datetime对象。

给定一个适合传递给datetime.date.fromtimestamp()的参数 Tuples,创建并返回一个新的datetime.date对象。