blob: 044d3e5a1d529cb0a1a5c7d0f2b44c956b0b1e8c [file] [log] [blame]
Georg Brandl54a3faa2008-01-20 09:30:57 +00001.. highlightlang:: c
2
3.. _datetimeobjects:
4
5DateTime Objects
6----------------
7
8Various date and time objects are supplied by the :mod:`datetime` module.
9Before using any of these functions, the header file :file:`datetime.h` must be
10included in your source (note that this is not included by :file:`Python.h`),
11and the macro :cfunc:`PyDateTime_IMPORT` must be invoked. The macro puts a
12pointer to a C structure into a static variable, ``PyDateTimeAPI``, that is
13used by the following macros.
14
15Type-check macros:
16
17.. cfunction:: int PyDate_Check(PyObject *ob)
18
19 Return true if *ob* is of type :cdata:`PyDateTime_DateType` or a subtype of
20 :cdata:`PyDateTime_DateType`. *ob* must not be *NULL*.
21
22
23.. cfunction:: int PyDate_CheckExact(PyObject *ob)
24
25 Return true if *ob* is of type :cdata:`PyDateTime_DateType`. *ob* must not be
26 *NULL*.
27
28
29.. cfunction:: int PyDateTime_Check(PyObject *ob)
30
31 Return true if *ob* is of type :cdata:`PyDateTime_DateTimeType` or a subtype of
32 :cdata:`PyDateTime_DateTimeType`. *ob* must not be *NULL*.
33
34
35.. cfunction:: int PyDateTime_CheckExact(PyObject *ob)
36
37 Return true if *ob* is of type :cdata:`PyDateTime_DateTimeType`. *ob* must not
38 be *NULL*.
39
40
41.. cfunction:: int PyTime_Check(PyObject *ob)
42
43 Return true if *ob* is of type :cdata:`PyDateTime_TimeType` or a subtype of
44 :cdata:`PyDateTime_TimeType`. *ob* must not be *NULL*.
45
46
47.. cfunction:: int PyTime_CheckExact(PyObject *ob)
48
49 Return true if *ob* is of type :cdata:`PyDateTime_TimeType`. *ob* must not be
50 *NULL*.
51
52
53.. cfunction:: int PyDelta_Check(PyObject *ob)
54
55 Return true if *ob* is of type :cdata:`PyDateTime_DeltaType` or a subtype of
56 :cdata:`PyDateTime_DeltaType`. *ob* must not be *NULL*.
57
58
59.. cfunction:: int PyDelta_CheckExact(PyObject *ob)
60
61 Return true if *ob* is of type :cdata:`PyDateTime_DeltaType`. *ob* must not be
62 *NULL*.
63
64
65.. cfunction:: int PyTZInfo_Check(PyObject *ob)
66
67 Return true if *ob* is of type :cdata:`PyDateTime_TZInfoType` or a subtype of
68 :cdata:`PyDateTime_TZInfoType`. *ob* must not be *NULL*.
69
70
71.. cfunction:: int PyTZInfo_CheckExact(PyObject *ob)
72
73 Return true if *ob* is of type :cdata:`PyDateTime_TZInfoType`. *ob* must not be
74 *NULL*.
75
76
77Macros to create objects:
78
79.. cfunction:: PyObject* PyDate_FromDate(int year, int month, int day)
80
81 Return a ``datetime.date`` object with the specified year, month and day.
82
83
84.. cfunction:: PyObject* PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond)
85
86 Return a ``datetime.datetime`` object with the specified year, month, day, hour,
87 minute, second and microsecond.
88
89
90.. cfunction:: PyObject* PyTime_FromTime(int hour, int minute, int second, int usecond)
91
92 Return a ``datetime.time`` object with the specified hour, minute, second and
93 microsecond.
94
95
96.. cfunction:: PyObject* PyDelta_FromDSU(int days, int seconds, int useconds)
97
98 Return a ``datetime.timedelta`` object representing the given number of days,
99 seconds and microseconds. Normalization is performed so that the resulting
100 number of microseconds and seconds lie in the ranges documented for
101 ``datetime.timedelta`` objects.
102
103
104Macros to extract fields from date objects. The argument must be an instance of
105:cdata:`PyDateTime_Date`, including subclasses (such as
106:cdata:`PyDateTime_DateTime`). The argument must not be *NULL*, and the type is
107not checked:
108
109.. cfunction:: int PyDateTime_GET_YEAR(PyDateTime_Date *o)
110
111 Return the year, as a positive int.
112
113
114.. cfunction:: int PyDateTime_GET_MONTH(PyDateTime_Date *o)
115
116 Return the month, as an int from 1 through 12.
117
118
119.. cfunction:: int PyDateTime_GET_DAY(PyDateTime_Date *o)
120
121 Return the day, as an int from 1 through 31.
122
123
124Macros to extract fields from datetime objects. The argument must be an
125instance of :cdata:`PyDateTime_DateTime`, including subclasses. The argument
126must not be *NULL*, and the type is not checked:
127
128.. cfunction:: int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime *o)
129
130 Return the hour, as an int from 0 through 23.
131
132
133.. cfunction:: int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o)
134
135 Return the minute, as an int from 0 through 59.
136
137
138.. cfunction:: int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o)
139
140 Return the second, as an int from 0 through 59.
141
142
143.. cfunction:: int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o)
144
145 Return the microsecond, as an int from 0 through 999999.
146
147
148Macros to extract fields from time objects. The argument must be an instance of
149:cdata:`PyDateTime_Time`, including subclasses. The argument must not be *NULL*,
150and the type is not checked:
151
152.. cfunction:: int PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o)
153
154 Return the hour, as an int from 0 through 23.
155
156
157.. cfunction:: int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o)
158
159 Return the minute, as an int from 0 through 59.
160
161
162.. cfunction:: int PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o)
163
164 Return the second, as an int from 0 through 59.
165
166
167.. cfunction:: int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o)
168
169 Return the microsecond, as an int from 0 through 999999.
170
171
172Macros for the convenience of modules implementing the DB API:
173
174.. cfunction:: PyObject* PyDateTime_FromTimestamp(PyObject *args)
175
176 Create and return a new ``datetime.datetime`` object given an argument tuple
177 suitable for passing to ``datetime.datetime.fromtimestamp()``.
178
179
180.. cfunction:: PyObject* PyDate_FromTimestamp(PyObject *args)
181
182 Create and return a new ``datetime.date`` object given an argument tuple
183 suitable for passing to ``datetime.date.fromtimestamp()``.