Lớp DateTime cung cấp các chức năng khác nhau để thao tác các khoảng thời gian ngày và thời gian. Đối tượng DateTime mà bạn sử dụng trong datetime.now[]
thực sự là đối tượng của lớp DateTime. Những đối tượng này giúp chúng tôi sử dụng các chức năng vào ngày và thời gian.
Lưu ý: Để biết thêm thông tin, hãy tham khảo mô -đun DateTime Python với các ví dụ For more information, refer to Python datetime module with examples
DateTime.tzinfo[]
datetime.now[]
không có bất kỳ thông tin nào về múi giờ. Nó chỉ sử dụng thời gian hệ thống hiện tại. Trong một số tình huống, chi tiết múi giờ có thể cần thiết. Trong những trường hợp như vậy, lớp trừu tượng TZINFO được sử dụng. Tzinfo là một lớp cơ sở trừu tượng. Nó không thể được khởi tạo trực tiếp. Một lớp con cụ thể phải lấy nó và thực hiện các phương pháp được cung cấp bởi lớp trừu tượng này.tzinfo abstract class is used. tzinfo is an abstract base class. It cannot be instantiated directly. A concrete subclass has to derive it and implement the methods provided by this abstract class.
Thể hiện của lớp TZINFO có thể được chuyển cho các hàm tạo của các đối tượng DateTime và thời gian. Nó tìm thấy các ứng dụng của nó trong các tình huống như chuyển đổi thời gian địa phương sang UTC hoặc để tính đến thời gian tiết kiệm ánh sáng ban ngày.
Các đối tượng DateTime ngây thơ và nhận thức
Một đối tượng DateTime không chứa bất kỳ thông tin nào trên múi giờ được cho là một đối tượng DateTime ngây thơ. Đối với một đối tượng DateTime ngây thơ, datetime_object.tzinfo
sẽ là None
. Một đối tượng DateTime nhận thức chứa thông tin múi giờ được nhúng trong đó.naive datetime object. For a naive datetime object, datetime_object.tzinfo
will be None
. An Aware datetime object contains the time zone information embedded in it.
Các phương pháp có sẵn để thực hiện trong lớp cơ sở TZINFO là:
- UTCOFFSET [tự, DT]
- DST [tự, DT]
- Tzname [tự, DT]
- Fromutc [tự, DT]
utcoffset[]
Nó trả về phần bù của thể hiện DateTime được truyền dưới dạng đối số.
Điều này bù cái gì đề cập đến?
Nó đề cập đến phần bù múi giờ biểu thị bao nhiêu giờ múi giờ ở phía trước từ thời gian phối hợp hoặc tọa độ thời gian phổ quát [UTC]. Phần bù được viết là +00: 00. Ví dụ: đối với Châu Á/Đài Bắc, nó được viết là UTC +08: 00.
Nó chiếm thời gian của một đối tượng DateTime và trả về sự khác biệt giữa thời gian trong đối tượng DateTime và thời gian của cùng một điểm trong UTC. Nó trả lại phần bù trong vài phút về phía đông của UTC. Nếu giờ địa phương là phía tây UTC, nó sẽ là tiêu cực. Mẫu thực hiện chung được đưa ra dưới đây:minutes east of UTC. If the local time is west of UTC, it would be negative. The general implementation form is given below:
For fixed offset : def utcoff[self, dt]: return constant For time aware objects : def utcoffset[self, dt]: return self.stdoffset + self.dst[dt]
dst[]
Nó được viết tắt là thời gian tiết kiệm ban ngày. Nó biểu thị việc tiến lên đồng hồ 1 giờ vào mùa hè, do đó bóng tối rơi sau đó theo đồng hồ. Nó được đặt thành bật hoặc tắt. Nó được kiểm tra dựa trên một tuple chứa 9 phần tử như sau:Day-light Saving Time. It denotes advancing the clock 1 hour in summer time, so that darkness falls later according to the clock. It is set to on or off. It is checked based on a tuple containing 9 elements as follows :
.
Một hàm riêng được viết để trả về 0, 1 hoặc -1 tùy thuộc vào 9 yếu tố này. Dựa trên đó giá trị của dst[self, dt]
được quyết định. Hàm được viết trong lớp nơi dst[]
được xác định. Nó được viết là:
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET0
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET1
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET2
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET4
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET5
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET6
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET7
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET8
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET9
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET8
datetime.now[] : UTC Naive Object : None Aware Object : CET1
datetime.now[] : UTC Naive Object : None Aware Object : CET2
datetime.now[] : UTC Naive Object : None Aware Object : CET3
datetime.now[] : UTC Naive Object : None Aware Object : CET2
datetime.now[] : UTC Naive Object : None Aware Object : CET5
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET4
datetime.now[] : UTC Naive Object : None Aware Object : CET7
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET6
datetime.now[] : UTC Naive Object : None Aware Object : CET9
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET4
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET5
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET6
def fromutc[self, dt]: dt_offset = dt.utcoffset[] dt_dst = dt.dst[] delta = dt_offset - dt_dst if delta: dt += delta dtdst = dt.dst[] if dtdst: return dt + dtdst else: return dt3
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET4
def fromutc[self, dt]: dt_offset = dt.utcoffset[] dt_dst = dt.dst[] delta = dt_offset - dt_dst if delta: dt += delta dtdst = dt.dst[] if dtdst: return dt + dtdst else: return dt5
def fromutc[self, dt]: dt_offset = dt.utcoffset[] dt_dst = dt.dst[] delta = dt_offset - dt_dst if delta: dt += delta dtdst = dt.dst[] if dtdst: return dt + dtdst else: return dt6
datetime.now[] : UTC Naive Object : None Aware Object : CET2
Ở đây
def fromutc[self, dt]: dt_offset = dt.utcoffset[] dt_dst = dt.dst[] delta = dt_offset - dt_dst if delta: dt += delta dtdst = dt.dst[] if dtdst: return dt + dtdst else: return dt8 lấy tuple này và chuyển đổi nó thành thời gian trong vài giây trôi qua kể từ thời đại địa phương. Sau đó,
def fromutc[self, dt]: dt_offset = dt.utcoffset[] dt_dst = dt.dst[] delta = dt_offset - dt_dst if delta: dt += delta dtdst = dt.dst[] if dtdst: return dt + dtdst else: return dt9 được sử dụng cùng với Mktime. Nó trả về các giá trị như sau:
‘1,-tiết kiệm ánh sáng ban ngày trên‘ – Daylight Saving ON
‘0’ – Daylight Saving OFF
‘-1’ – Daylight Saving information unknown
Sau khi thêm mã này vào lớp, dst[]
có thể được xác định như được đưa ra dưới đây dựa trên các điều kiện.
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET
tzname[]
Điều này được sử dụng để tìm tên múi giờ của đối tượng DateTime được truyền. Nó trả về một đối tượng chuỗi python.
Example:
datetime.now[]
1 datetime.now[]
2
datetime.now[]
3 datetime.now[]
4datetime.now[]
1 datetime.now[]
6
datetime.now[]
7
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET6
datetime.now[]
9datetime.now[]
0datetime.now[]
1datetime.now[]
2datetime.now[]
3
datetime.now[]
4
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET6
datetime.now[]
6datetime.now[]
7datetime.now[]
8datetime.now[]
9
For fixed offset class : def dst[self, dt]: return ZERO For time aware objects : def utcoffset[self, dt]: if self._isdst[dt]: return DSTOFFSET else: return STDOFFSET6
datetime_object.tzinfo
1datetime_object.tzinfo
2datetime.now[] : UTC Naive Object : None Aware Object : CET3
datetime_object.tzinfo
44datetime.now[] : UTC Naive Object : None Aware Object : CET3
datetime_object.tzinfo
6datetime.now[] : UTC Naive Object : None Aware Object : CET3
datetime_object.tzinfo
8datetime.now[] : UTC Naive Object : None Aware Object : CET3
datetime.now[] : UTC Naive Object : None Aware Object : CET2222
Is
datetime.now[]
0datetime.now[]
1dst[self, dt]
9dst[]
0
datetime.now[]
0datetime.now[]
1dst[]
3dst[]
4
Output:
datetime.now[] : UTC Naive Object : None Aware Object : CET
fromutc[]
Hàm này chiếm ngày và thời gian của đối tượng trong UTC và trả về thời gian cục bộ tương đương. Nó được sử dụng chủ yếu để điều chỉnh ngày và thời gian. Nó được gọi từ việc triển khai dst[]
5 mặc định. DT.TZINFO sẽ được thông qua dưới dạng dữ liệu ngày và thời gian của DT, sẽ được trả lại dưới dạng thời gian địa phương tương đương.
Lưu ý: Nó sẽ tăng dst[]
6 nếu dt.tzinfo không phải là bản thân hoặc/và dst [] không có. It will raise dst[]
6 if dt.tzinfo is not self or/and dst[] is None.
Việc thực hiện chung được đưa ra dưới đây:
def fromutc[self, dt]: dt_offset = dt.utcoffset[] dt_dst = dt.dst[] delta = dt_offset - dt_dst if delta: dt += delta dtdst = dt.dst[] if dtdst: return dt + dtdst else: return dt