Phương pháp utcoffset
của datetime
cung cấp cho bạn sự khác biệt giữa thời gian "đồng hồ tường" của thời gian dữ liệu và thời gian "đồng hồ treo tường" của cùng một thời điểm trong UTC, vì vậy, chính xác như bạn mong đợi [dt - dt_as_utc
]. Lý do nó là một chức năng là trong nhiều múi giờ [chẳng hạn như những múi giờ có tiết kiệm ánh sáng ban ngày], sự thay đổi bù đắp trong suốt một năm. Ví dụ:
from datetime import datetime, timedelta
from dateutil import tz
NYC = tz.gettz['America/New_York'] # Note: ambiguous time support
# requires version >= 2.6.0, be aware.
dt1 = datetime[2015, 5, 21, 12, 0, tzinfo=NYC] # EST
dt2 = datetime[2015, 12, 21, 12, 0, tzinfo=NYC] # EDT
print[dt1.utcoffset[] / timedelta[hours=1]]
# -4
print[dt1.tzname[]]
# EDT
print[dt2.utcoffset[] / timedelta[hours=1]]
# -5
print[dt2.tzname[]]
# EST
Như bạn có thể thấy, điều tương tự áp dụng cho hàm tzname[]
. Đối với các dữ liệu ngây thơ [những người không có DateTime],
import datetime0 và
tzname[]
nên cả hai sẽ trả về import datetime2.
Một lưu ý, tôi thường khuyên không nên sử dụng chức năng này để tính toán dấu thời gian UTC, thay vào đó, bạn nên sử dụng
import datetime3 với
import datetime4 hoặc
import datetime5 hoặc, nếu bạn đang sử dụng phiên bản Python> = 3.2, bạn có thể sử dụng đối tượng
import datetime6.
Nhập dữ liệu
# Thời gian Singapore
sgtttimedelta & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; = datetime.timedelta [giờ = 8]
sgttzObject & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; = datetime.timezone [sgtttimedelta, name = "sgt"]
datetimeInstance & nbsp; & nbsp; & nbsp; = datetime.datetime [2017,2,14,12,15,1,99, SGTTZOBject]
PRIN
PRIN
# Ví dụ Chương trình Python in phần bù UTC # từ một phiên bản múi giờ từ DateTime Nhập Timedelta, Timezone, Time
# from a timezone instance
from datetime import timedelta, timezone, time
# Tạo một thời gian với +9 giờ là thời lượng jstoffset = TimedelTa [giờ = 9] jst = timezone [jstoffset, "giờ chuẩn Nhật Bản"]
jstOffset = timedelta[hours = 9]
jst = timezone[jstOffset, "Japanese Standard Time"]
# In bản in Offset UTC ["OFC Offset từ múi giờ:"]
print["UTC offset from time zone:"]
OFT = JST.UTCOFFSET [Không có] In [OFT] in [loại [OFT]]
print[oft]
print[type[oft]]
# Buổi chiều Nhật Bản JPLITENOON = thời gian [giờ = 13, tzinfo = jst] in ["Thời gian:"] in [JPLITENOON .__ Định dạng __ ["%i:%m%p jst"]]]
jpAfternoon = time[hour = 13, tzinfo = jst]
print["Time:"]
print[jpAfternoon.__format__["%I:%M %p JST"]]
Trang chủ »Python» Tham khảo Python »Lớp DateTime Python
Phương thức python datetime.utcoffset []: Ở đây, chúng ta sẽ tìm hiểu về phương thức utcoffset [] của lớp DateTime trong Python với định nghĩa, cú pháp và ví dụ của nó. Được gửi bởi Hritika Rajput, vào ngày 30 tháng 4 năm 2020: Here, we are going to learn about the utcoffset[] method of datetime class in Python with its definition, syntax, and examples.
Submitted by Hritika Rajput, on April 30, 2020
Phương thức python datetime.utcoffset []
Phương thức DateTime.utCoffset [] được sử dụng trong lớp DateTime của DateTime. is used in the datetime class of module datetime.
Nó sử dụng một thể hiện của lớp và trả về một thể hiện Timedelta tương ứng với phần bù UTC của TZINFO được chỉ định trong trường hợp được đưa ra.
Module:
import datetime
Class:
from datetime import datetime
Syntax:
utcoffset[]
Parameter[s]:
- Không có
Giá trị trở lại:
Loại trả về là một đối tượng Timedelta đại diện cho sự khác biệt giữa thời gian địa phương và thời gian UTC.
Phạm vi của utcoffset: -Timedelta [giờ = 24]
Nếu phần bù là ở phía đông của UTC, thì nó được coi là tích cực và nếu nó ở phía tây UTC, thì nó là tiêu cực. Vì có 24 giờ trong một ngày, -Timedelta [24] và Timedelta [24] là những giá trị lớn nhất có thể.
Example:
from datetime import datetime import pytz naive= datetime.now[] ## Tzinfo is missing from the time object ## which is naive print[naive] print[naive.tzinfo] print[naive.utcoffset[]] print[] ## Adding a timezone timezone = pytz.timezone["Asia/Kolkata"] aware1 = timezone.localize[naive] print[aware1] print[aware1.tzinfo] print["Time ahead of UTC by:", aware1.utcoffset[]] print[] ## After adding the timezone info, ## the object it becomes aware timezone = pytz.timezone["Asia/Tokyo"] aware2 = timezone.localize[naive] print[aware2] print[aware2.tzinfo] print["Time ahead of UTC by:", aware2.utcoffset[]] print[] timezone = pytz.timezone["America/New_York"] aware3 = timezone.localize[naive] print[aware3] print[aware3.tzinfo] ## timedelta comes as -1 day 20 hrs ## which is equal to -4 hrs print["Time behind to UTC by:", aware3.utcoffset[]] print[] ## You can also use the astimezone ## function of datetime to timezone = pytz.timezone["Europe/Berlin"] aware4 = naive.astimezone[timezone] print[aware4] print[aware4.tzinfo] print["Time ahead of UTC by:", aware4.utcoffset[]]
Đầu ra
2020-04-30 20:35:51.516509 None None 2020-04-30 20:35:51.516509+05:30 Asia/Kolkata Time ahead of UTC by: 5:30:00 2020-04-30 20:35:51.516509+09:00 Asia/Tokyo Time ahead of UTC by: 9:00:00 2020-04-30 20:35:51.516509-04:00 America/New_York Time behind to UTC by: -1 day, 20:00:00 2020-04-30 22:35:51.516509+02:00 Europe/Berlin Time ahead of UTC by: 2:00:00