Đối tượng ngày giờ¶
Các đối tượng ngày và giờ khác nhau được cung cấp bởi mô-đun datetime. Trước khi sử dụng bất kỳ chức năng nào trong số này, tệp tiêu đề datetime.h phải được đưa vào nguồn của bạn (lưu ý rằng Python.h không bao gồm tệp này) và macro PyDateTime_IMPORT phải được gọi, thường là một phần của chức năng khởi tạo mô-đun. Macro đặt con trỏ tới cấu trúc C vào một biến tĩnh, PyDateTimeAPI, được các macro sau sử dụng.
-
PyDateTime_IMPORT()¶
Nhập ngày giờ C API.
Khi thành công, hãy điền vào con trỏ
PyDateTimeAPI. Nếu thất bại, hãy đặtPyDateTimeAPIthànhNULLvà đặt ngoại lệ. Người gọi phải kiểm tra xem có xảy ra lỗi quaPyErr_Occurred()hay không:PyDateTime_IMPORT; if (PyErr_Occurred()) { /* dọn dẹp */ }
Cảnh báo
Điều này không tương thích với trình thông dịch phụ.
-
type PyDateTime_CAPI¶
Cấu trúc chứa các trường cho datetime C API.
Các trường của cấu trúc này là riêng tư và có thể thay đổi.
Không sử dụng trực tiếp; thay vào đó thích API
PyDateTime_*hơn.
-
PyDateTime_CAPI *PyDateTimeAPI¶
Đối tượng được phân bổ động chứa datetime C API.
Biến này chỉ khả dụng khi
PyDateTime_IMPORTthành công.
-
PyTypeObject PyDateTime_DateType¶
Phiên bản
PyTypeObjectnày đại diện cho kiểu ngày Python; nó là đối tượng tương tự nhưdatetime.datetrong lớp Python.
-
PyTypeObject PyDateTime_DateTimeType¶
Phiên bản
PyTypeObjectnày đại diện cho kiểu ngày giờ của Python; nó là đối tượng tương tự nhưdatetime.datetimetrong lớp Python.
-
PyTypeObject PyDateTime_TimeType¶
Phiên bản
PyTypeObjectnày đại diện cho loại thời gian Python; nó là đối tượng tương tự nhưdatetime.timetrong lớp Python.
-
PyTypeObject PyDateTime_DeltaType¶
Phiên bản
PyTypeObjectnày đại diện cho kiểu Python cho sự khác biệt giữa hai giá trị ngày giờ; nó là đối tượng tương tự nhưdatetime.timedeltatrong lớp Python.
-
PyTypeObject PyDateTime_TZInfoType¶
Phiên bản
PyTypeObjectnày đại diện cho loại thông tin múi giờ Python; nó là đối tượng tương tự nhưdatetime.tzinfotrong lớp Python.
Macro để truy cập vào singleton UTC:
-
PyObject *PyDateTime_TimeZone_UTC¶
Trả về đơn vị múi giờ đại diện cho UTC, cùng đối tượng với
datetime.timezone.utc.Added in version 3.7.
Macro kiểm tra loại:
-
int PyDate_Check(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_DateTypehoặc một loại con củaPyDateTime_DateType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyDate_CheckExact(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_DateType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyDateTime_Check(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_DateTimeTypehoặc một loại con củaPyDateTime_DateTimeType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyDateTime_CheckExact(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_DateTimeType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyTime_Check(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_TimeTypehoặc một loại con củaPyDateTime_TimeType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyTime_CheckExact(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_TimeType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyDelta_Check(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_DeltaTypehoặc một loại con củaPyDateTime_DeltaType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyDelta_CheckExact(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_DeltaType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyTZInfo_Check(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_TZInfoTypehoặc một loại con củaPyDateTime_TZInfoType. ob không được làNULL. Chức năng này luôn thành công.
-
int PyTZInfo_CheckExact(PyObject *ob)¶
Trả về true nếu ob thuộc loại
PyDateTime_TZInfoType. ob không được làNULL. Chức năng này luôn thành công.
Macro để tạo đối tượng:
-
PyObject *PyDate_FromDate(int year, int month, int day)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng
datetime.datevới năm, tháng và ngày được chỉ định.
-
PyObject *PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng
datetime.datetimevới năm, tháng, ngày, giờ, phút, giây và micro giây được chỉ định.
-
PyObject *PyDateTime_FromDateAndTimeAndFold(int year, int month, int day, int hour, int minute, int second, int usecond, int fold)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng
datetime.datetimevới năm, tháng, ngày, giờ, phút, giây, micro giây và gấp được chỉ định.Added in version 3.6.
-
PyObject *PyTime_FromTime(int hour, int minute, int second, int usecond)¶
- Giá trị trả về: Tham chiếu mới.
Trả về đối tượng
datetime.timevới giờ, phút, giây và micro giây được chỉ định.
-
PyObject *PyTime_FromTimeAndFold(int hour, int minute, int second, int usecond, int fold)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng
datetime.timevới giờ, phút, giây, micro giây và gấp được chỉ định.Added in version 3.6.
-
PyObject *PyDelta_FromDSU(int days, int seconds, int useconds)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng
datetime.timedeltađại diện cho số ngày, giây và micro giây đã cho. Việc chuẩn hóa được thực hiện sao cho số micro giây và giây thu được nằm trong phạm vi được ghi lại cho các đối tượngdatetime.timedelta.
-
PyObject *PyTimeZone_FromOffset(PyObject *offset)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng
datetime.timezonevới phần bù cố định không được đặt tên được biểu thị bằng đối số offset.Added in version 3.7.
-
PyObject *PyTimeZone_FromOffsetAndName(PyObject *offset, PyObject *name)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng
datetime.timezonecó độ lệch cố định được biểu thị bằng đối số offset và với tzname name.Added in version 3.7.
Macro để trích xuất các trường từ các đối tượng ngày. Đối số phải là một phiên bản của PyDateTime_Date, bao gồm các lớp con (chẳng hạn như PyDateTime_DateTime). Đối số không được là NULL và loại không được chọn:
-
int PyDateTime_GET_YEAR(PyDateTime_Date *o)¶
Trả về năm dưới dạng int dương.
-
int PyDateTime_GET_MONTH(PyDateTime_Date *o)¶
Trả về tháng dưới dạng int từ 1 đến 12.
-
int PyDateTime_GET_DAY(PyDateTime_Date *o)¶
Trả về ngày dưới dạng int từ 1 đến 31.
Macro để trích xuất các trường từ các đối tượng datetime. Đối số phải là một phiên bản của PyDateTime_DateTime, bao gồm các lớp con. Đối số không được là NULL và loại không được chọn:
-
int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime *o)¶
Trả về giờ, dưới dạng int từ 0 đến 23.
-
int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o)¶
Trả về phút, dưới dạng int từ 0 đến 59.
-
int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o)¶
Trả về số thứ hai, dưới dạng int từ 0 đến 59.
-
int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o)¶
Trả về micro giây, dưới dạng int từ 0 đến 999999.
-
int PyDateTime_DATE_GET_FOLD(PyDateTime_DateTime *o)¶
Trả về giá trị gấp, dưới dạng int từ 0 đến 1.
Added in version 3.6.
-
PyObject *PyDateTime_DATE_GET_TZINFO(PyDateTime_DateTime *o)¶
Trả lại tzinfo (có thể là
None).Added in version 3.10.
Macro để trích xuất các trường từ các đối tượng thời gian. Đối số phải là một phiên bản của PyDateTime_Time, bao gồm các lớp con. Đối số không được là NULL và loại không được chọn:
-
int PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o)¶
Trả về giờ, dưới dạng int từ 0 đến 23.
-
int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o)¶
Trả về phút, dưới dạng int từ 0 đến 59.
-
int PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o)¶
Trả về số thứ hai, dưới dạng int từ 0 đến 59.
-
int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o)¶
Trả về micro giây, dưới dạng int từ 0 đến 999999.
-
int PyDateTime_TIME_GET_FOLD(PyDateTime_Time *o)¶
Trả về giá trị gấp, dưới dạng int từ 0 đến 1.
Added in version 3.6.
-
PyObject *PyDateTime_TIME_GET_TZINFO(PyDateTime_Time *o)¶
Trả lại tzinfo (có thể là
None).Added in version 3.10.
Macro để trích xuất các trường từ các đối tượng delta thời gian. Đối số phải là một phiên bản của PyDateTime_Delta, bao gồm các lớp con. Đối số không được là NULL và loại không được chọn:
-
int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta *o)¶
Trả về số ngày, dưới dạng int từ -999999999 đến 999999999.
Added in version 3.3.
-
int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o)¶
Trả về số giây, dưới dạng int từ 0 đến 86399.
Added in version 3.3.
-
int PyDateTime_DELTA_GET_MICROSECONDS(PyDateTime_Delta *o)¶
Trả về số micro giây, dưới dạng int từ 0 đến 999999.
Added in version 3.3.
Macro để thuận tiện cho các mô-đun triển khai DB API:
-
PyObject *PyDateTime_FromTimestamp(PyObject *args)¶
- Giá trị trả về: Tham chiếu mới.
Tạo và trả về một đối tượng
datetime.datetimemới với một bộ đối số phù hợp để truyền tớidatetime.datetime.fromtimestamp().
-
PyObject *PyDate_FromTimestamp(PyObject *args)¶
- Giá trị trả về: Tham chiếu mới.
Tạo và trả về một đối tượng
datetime.datemới với một bộ đối số phù hợp để truyền tớidatetime.date.fromtimestamp().
Dữ liệu nội bộ¶
Các ký hiệu sau đây được C API hiển thị nhưng chỉ được coi là nội bộ.
-
PyDateTime_CAPSULE_NAME¶
Tên của viên nang ngày giờ để chuyển tới
PyCapsule_Import().Chỉ sử dụng nội bộ. Thay vào đó hãy sử dụng
PyDateTime_IMPORT.