17db96d56Sopenharmony_ci.. highlight:: c 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci.. _datetimeobjects: 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciDateTime Objects 67db96d56Sopenharmony_ci---------------- 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ciVarious date and time objects are supplied by the :mod:`datetime` module. 97db96d56Sopenharmony_ciBefore using any of these functions, the header file :file:`datetime.h` must be 107db96d56Sopenharmony_ciincluded in your source (note that this is not included by :file:`Python.h`), 117db96d56Sopenharmony_ciand the macro :c:macro:`PyDateTime_IMPORT` must be invoked, usually as part of 127db96d56Sopenharmony_cithe module initialisation function. The macro puts a pointer to a C structure 137db96d56Sopenharmony_ciinto a static variable, :c:data:`PyDateTimeAPI`, that is used by the following 147db96d56Sopenharmony_cimacros. 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ciMacro for access to the UTC singleton: 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci.. c:var:: PyObject* PyDateTime_TimeZone_UTC 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci Returns the time zone singleton representing UTC, the same object as 217db96d56Sopenharmony_ci :attr:`datetime.timezone.utc`. 227db96d56Sopenharmony_ci 237db96d56Sopenharmony_ci .. versionadded:: 3.7 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ciType-check macros: 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci.. c:function:: int PyDate_Check(PyObject *ob) 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype of 317db96d56Sopenharmony_ci :c:data:`PyDateTime_DateType`. *ob* must not be ``NULL``. This function always 327db96d56Sopenharmony_ci succeeds. 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci.. c:function:: int PyDate_CheckExact(PyObject *ob) 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not be 387db96d56Sopenharmony_ci ``NULL``. This function always succeeds. 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci.. c:function:: int PyDateTime_Check(PyObject *ob) 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a subtype of 447db96d56Sopenharmony_ci :c:data:`PyDateTime_DateTimeType`. *ob* must not be ``NULL``. This function always 457db96d56Sopenharmony_ci succeeds. 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci 487db96d56Sopenharmony_ci.. c:function:: int PyDateTime_CheckExact(PyObject *ob) 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must not 517db96d56Sopenharmony_ci be ``NULL``. This function always succeeds. 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci 547db96d56Sopenharmony_ci.. c:function:: int PyTime_Check(PyObject *ob) 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype of 577db96d56Sopenharmony_ci :c:data:`PyDateTime_TimeType`. *ob* must not be ``NULL``. This function always 587db96d56Sopenharmony_ci succeeds. 597db96d56Sopenharmony_ci 607db96d56Sopenharmony_ci 617db96d56Sopenharmony_ci.. c:function:: int PyTime_CheckExact(PyObject *ob) 627db96d56Sopenharmony_ci 637db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not be 647db96d56Sopenharmony_ci ``NULL``. This function always succeeds. 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ci 677db96d56Sopenharmony_ci.. c:function:: int PyDelta_Check(PyObject *ob) 687db96d56Sopenharmony_ci 697db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype of 707db96d56Sopenharmony_ci :c:data:`PyDateTime_DeltaType`. *ob* must not be ``NULL``. This function always 717db96d56Sopenharmony_ci succeeds. 727db96d56Sopenharmony_ci 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ci.. c:function:: int PyDelta_CheckExact(PyObject *ob) 757db96d56Sopenharmony_ci 767db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not be 777db96d56Sopenharmony_ci ``NULL``. This function always succeeds. 787db96d56Sopenharmony_ci 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ci.. c:function:: int PyTZInfo_Check(PyObject *ob) 817db96d56Sopenharmony_ci 827db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype of 837db96d56Sopenharmony_ci :c:data:`PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This function always 847db96d56Sopenharmony_ci succeeds. 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ci 877db96d56Sopenharmony_ci.. c:function:: int PyTZInfo_CheckExact(PyObject *ob) 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_ci Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must not be 907db96d56Sopenharmony_ci ``NULL``. This function always succeeds. 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ci 937db96d56Sopenharmony_ciMacros to create objects: 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ci.. c:function:: PyObject* PyDate_FromDate(int year, int month, int day) 967db96d56Sopenharmony_ci 977db96d56Sopenharmony_ci Return a :class:`datetime.date` object with the specified year, month and day. 987db96d56Sopenharmony_ci 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_ci.. c:function:: PyObject* PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond) 1017db96d56Sopenharmony_ci 1027db96d56Sopenharmony_ci Return a :class:`datetime.datetime` object with the specified year, month, day, hour, 1037db96d56Sopenharmony_ci minute, second and microsecond. 1047db96d56Sopenharmony_ci 1057db96d56Sopenharmony_ci 1067db96d56Sopenharmony_ci.. c:function:: PyObject* PyDateTime_FromDateAndTimeAndFold(int year, int month, int day, int hour, int minute, int second, int usecond, int fold) 1077db96d56Sopenharmony_ci 1087db96d56Sopenharmony_ci Return a :class:`datetime.datetime` object with the specified year, month, day, hour, 1097db96d56Sopenharmony_ci minute, second, microsecond and fold. 1107db96d56Sopenharmony_ci 1117db96d56Sopenharmony_ci .. versionadded:: 3.6 1127db96d56Sopenharmony_ci 1137db96d56Sopenharmony_ci 1147db96d56Sopenharmony_ci.. c:function:: PyObject* PyTime_FromTime(int hour, int minute, int second, int usecond) 1157db96d56Sopenharmony_ci 1167db96d56Sopenharmony_ci Return a :class:`datetime.time` object with the specified hour, minute, second and 1177db96d56Sopenharmony_ci microsecond. 1187db96d56Sopenharmony_ci 1197db96d56Sopenharmony_ci 1207db96d56Sopenharmony_ci.. c:function:: PyObject* PyTime_FromTimeAndFold(int hour, int minute, int second, int usecond, int fold) 1217db96d56Sopenharmony_ci 1227db96d56Sopenharmony_ci Return a :class:`datetime.time` object with the specified hour, minute, second, 1237db96d56Sopenharmony_ci microsecond and fold. 1247db96d56Sopenharmony_ci 1257db96d56Sopenharmony_ci .. versionadded:: 3.6 1267db96d56Sopenharmony_ci 1277db96d56Sopenharmony_ci 1287db96d56Sopenharmony_ci.. c:function:: PyObject* PyDelta_FromDSU(int days, int seconds, int useconds) 1297db96d56Sopenharmony_ci 1307db96d56Sopenharmony_ci Return a :class:`datetime.timedelta` object representing the given number 1317db96d56Sopenharmony_ci of days, seconds and microseconds. Normalization is performed so that the 1327db96d56Sopenharmony_ci resulting number of microseconds and seconds lie in the ranges documented for 1337db96d56Sopenharmony_ci :class:`datetime.timedelta` objects. 1347db96d56Sopenharmony_ci 1357db96d56Sopenharmony_ci 1367db96d56Sopenharmony_ci.. c:function:: PyObject* PyTimeZone_FromOffset(PyDateTime_DeltaType* offset) 1377db96d56Sopenharmony_ci 1387db96d56Sopenharmony_ci Return a :class:`datetime.timezone` object with an unnamed fixed offset 1397db96d56Sopenharmony_ci represented by the *offset* argument. 1407db96d56Sopenharmony_ci 1417db96d56Sopenharmony_ci .. versionadded:: 3.7 1427db96d56Sopenharmony_ci 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_ci.. c:function:: PyObject* PyTimeZone_FromOffsetAndName(PyDateTime_DeltaType* offset, PyUnicode* name) 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ci Return a :class:`datetime.timezone` object with a fixed offset represented 1477db96d56Sopenharmony_ci by the *offset* argument and with tzname *name*. 1487db96d56Sopenharmony_ci 1497db96d56Sopenharmony_ci .. versionadded:: 3.7 1507db96d56Sopenharmony_ci 1517db96d56Sopenharmony_ci 1527db96d56Sopenharmony_ciMacros to extract fields from date objects. The argument must be an instance of 1537db96d56Sopenharmony_ci:c:data:`PyDateTime_Date`, including subclasses (such as 1547db96d56Sopenharmony_ci:c:data:`PyDateTime_DateTime`). The argument must not be ``NULL``, and the type is 1557db96d56Sopenharmony_cinot checked: 1567db96d56Sopenharmony_ci 1577db96d56Sopenharmony_ci.. c:function:: int PyDateTime_GET_YEAR(PyDateTime_Date *o) 1587db96d56Sopenharmony_ci 1597db96d56Sopenharmony_ci Return the year, as a positive int. 1607db96d56Sopenharmony_ci 1617db96d56Sopenharmony_ci 1627db96d56Sopenharmony_ci.. c:function:: int PyDateTime_GET_MONTH(PyDateTime_Date *o) 1637db96d56Sopenharmony_ci 1647db96d56Sopenharmony_ci Return the month, as an int from 1 through 12. 1657db96d56Sopenharmony_ci 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_ci.. c:function:: int PyDateTime_GET_DAY(PyDateTime_Date *o) 1687db96d56Sopenharmony_ci 1697db96d56Sopenharmony_ci Return the day, as an int from 1 through 31. 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ci 1727db96d56Sopenharmony_ciMacros to extract fields from datetime objects. The argument must be an 1737db96d56Sopenharmony_ciinstance of :c:data:`PyDateTime_DateTime`, including subclasses. The argument 1747db96d56Sopenharmony_cimust not be ``NULL``, and the type is not checked: 1757db96d56Sopenharmony_ci 1767db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime *o) 1777db96d56Sopenharmony_ci 1787db96d56Sopenharmony_ci Return the hour, as an int from 0 through 23. 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_ci 1817db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o) 1827db96d56Sopenharmony_ci 1837db96d56Sopenharmony_ci Return the minute, as an int from 0 through 59. 1847db96d56Sopenharmony_ci 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o) 1877db96d56Sopenharmony_ci 1887db96d56Sopenharmony_ci Return the second, as an int from 0 through 59. 1897db96d56Sopenharmony_ci 1907db96d56Sopenharmony_ci 1917db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o) 1927db96d56Sopenharmony_ci 1937db96d56Sopenharmony_ci Return the microsecond, as an int from 0 through 999999. 1947db96d56Sopenharmony_ci 1957db96d56Sopenharmony_ci 1967db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DATE_GET_FOLD(PyDateTime_DateTime *o) 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ci Return the fold, as an int from 0 through 1. 1997db96d56Sopenharmony_ci 2007db96d56Sopenharmony_ci .. versionadded:: 3.6 2017db96d56Sopenharmony_ci 2027db96d56Sopenharmony_ci 2037db96d56Sopenharmony_ci.. c:function:: PyObject* PyDateTime_DATE_GET_TZINFO(PyDateTime_DateTime *o) 2047db96d56Sopenharmony_ci 2057db96d56Sopenharmony_ci Return the tzinfo (which may be ``None``). 2067db96d56Sopenharmony_ci 2077db96d56Sopenharmony_ci .. versionadded:: 3.10 2087db96d56Sopenharmony_ci 2097db96d56Sopenharmony_ci 2107db96d56Sopenharmony_ciMacros to extract fields from time objects. The argument must be an instance of 2117db96d56Sopenharmony_ci:c:data:`PyDateTime_Time`, including subclasses. The argument must not be ``NULL``, 2127db96d56Sopenharmony_ciand the type is not checked: 2137db96d56Sopenharmony_ci 2147db96d56Sopenharmony_ci.. c:function:: int PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o) 2157db96d56Sopenharmony_ci 2167db96d56Sopenharmony_ci Return the hour, as an int from 0 through 23. 2177db96d56Sopenharmony_ci 2187db96d56Sopenharmony_ci 2197db96d56Sopenharmony_ci.. c:function:: int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o) 2207db96d56Sopenharmony_ci 2217db96d56Sopenharmony_ci Return the minute, as an int from 0 through 59. 2227db96d56Sopenharmony_ci 2237db96d56Sopenharmony_ci 2247db96d56Sopenharmony_ci.. c:function:: int PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o) 2257db96d56Sopenharmony_ci 2267db96d56Sopenharmony_ci Return the second, as an int from 0 through 59. 2277db96d56Sopenharmony_ci 2287db96d56Sopenharmony_ci 2297db96d56Sopenharmony_ci.. c:function:: int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o) 2307db96d56Sopenharmony_ci 2317db96d56Sopenharmony_ci Return the microsecond, as an int from 0 through 999999. 2327db96d56Sopenharmony_ci 2337db96d56Sopenharmony_ci 2347db96d56Sopenharmony_ci.. c:function:: int PyDateTime_TIME_GET_FOLD(PyDateTime_Time *o) 2357db96d56Sopenharmony_ci 2367db96d56Sopenharmony_ci Return the fold, as an int from 0 through 1. 2377db96d56Sopenharmony_ci 2387db96d56Sopenharmony_ci .. versionadded:: 3.6 2397db96d56Sopenharmony_ci 2407db96d56Sopenharmony_ci 2417db96d56Sopenharmony_ci.. c:function:: PyObject* PyDateTime_TIME_GET_TZINFO(PyDateTime_Time *o) 2427db96d56Sopenharmony_ci 2437db96d56Sopenharmony_ci Return the tzinfo (which may be ``None``). 2447db96d56Sopenharmony_ci 2457db96d56Sopenharmony_ci .. versionadded:: 3.10 2467db96d56Sopenharmony_ci 2477db96d56Sopenharmony_ci 2487db96d56Sopenharmony_ciMacros to extract fields from time delta objects. The argument must be an 2497db96d56Sopenharmony_ciinstance of :c:data:`PyDateTime_Delta`, including subclasses. The argument must 2507db96d56Sopenharmony_cinot be ``NULL``, and the type is not checked: 2517db96d56Sopenharmony_ci 2527db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta *o) 2537db96d56Sopenharmony_ci 2547db96d56Sopenharmony_ci Return the number of days, as an int from -999999999 to 999999999. 2557db96d56Sopenharmony_ci 2567db96d56Sopenharmony_ci .. versionadded:: 3.3 2577db96d56Sopenharmony_ci 2587db96d56Sopenharmony_ci 2597db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o) 2607db96d56Sopenharmony_ci 2617db96d56Sopenharmony_ci Return the number of seconds, as an int from 0 through 86399. 2627db96d56Sopenharmony_ci 2637db96d56Sopenharmony_ci .. versionadded:: 3.3 2647db96d56Sopenharmony_ci 2657db96d56Sopenharmony_ci 2667db96d56Sopenharmony_ci.. c:function:: int PyDateTime_DELTA_GET_MICROSECONDS(PyDateTime_Delta *o) 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ci Return the number of microseconds, as an int from 0 through 999999. 2697db96d56Sopenharmony_ci 2707db96d56Sopenharmony_ci .. versionadded:: 3.3 2717db96d56Sopenharmony_ci 2727db96d56Sopenharmony_ci 2737db96d56Sopenharmony_ciMacros for the convenience of modules implementing the DB API: 2747db96d56Sopenharmony_ci 2757db96d56Sopenharmony_ci.. c:function:: PyObject* PyDateTime_FromTimestamp(PyObject *args) 2767db96d56Sopenharmony_ci 2777db96d56Sopenharmony_ci Create and return a new :class:`datetime.datetime` object given an argument 2787db96d56Sopenharmony_ci tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`. 2797db96d56Sopenharmony_ci 2807db96d56Sopenharmony_ci 2817db96d56Sopenharmony_ci.. c:function:: PyObject* PyDate_FromTimestamp(PyObject *args) 2827db96d56Sopenharmony_ci 2837db96d56Sopenharmony_ci Create and return a new :class:`datetime.date` object given an argument 2847db96d56Sopenharmony_ci tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`. 285