Middle
Python'da pytz kitabxanası ilə datetime modulu arasındakı fərqlər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
datetime modulu tarix və saat ilə işləmək üçün əsas tiplər təqdim edir, lakin onun saat qurşaqları dəstəyi məhduddur. O, saat qurşağı haqqında məlumatları (saat qurşağı ilə məlumatlı obyektlər) yarada bilər, lakin saat qurşaqları bazası və yay vaxtına keçid qaydalarını ehtiva etmir.
Python-da saat qurşaqları ilə işləmək üçün de-fakto standart pytz kitabxanası, IANA Time Zone Database spesifikasiyasını həyata keçirən geniş saat qurşağı bazası təqdim edir. Bu, müxtəlif saat qurşaqları arasında vaxtın düzgün çevrilməsinə imkan verir, tarixi dəyişiklikləri və yay vaxtı qaydalarını nəzərə alır.
Əsas fərqlər:
- Saat qurşağı bazası:
pytzdaxili bazaya malikdir,datetime(standart kitabxanada) yox. - Saat qurşağı ilə məlumatlı obyektlərin yaradılması:
pytzilə bu,datetimeobyektinintzinfosahəsinə saat qurşağı obyekti təyin etməklə həyata keçirilir.datetimedətzinfotəyin etmək mümkündür, lakin bazasız, bu real saat qurşaqları və yay vaxtı keçidləri üçün az faydalıdır. - Yay vaxtına keçidlərin idarə olunması:
pytztarixi keçidləri və saat qurşağı dəyişikliklərini düzgün idarə edir.datetimebunu etmir. - Yerelleşdirmə: Verilən saat qurşağı üçün düzgün yerli vaxtı almaq üçün
pytzlazımdır.
pytz istifadə edərək saat qurşağını nəzərə alan datetime obyektinin yaradılması nümunəsi:
import datetime
import pytz
# Nyu-York üçün saat qurşağı obyektini əldə edin
ny_tz = pytz.timezone('America/New_York')
# Naive datetime yaradın
naive_dt = datetime.datetime(2023, 10, 27, 12, 0, 0)
# Naive datetime-i Nyu-York üçün saat qurşağı ilə məlumatlı obyektə çevirin
aware_dt_ny = ny_tz.localize(naive_dt)
# Digər saat qurşağına çevirin (məsələn, UTC)
aware_dt_utc = aware_dt_ny.astimezone(pytz.utc)
# Nəticələri göstərin
print(f"Naive datetime: {naive_dt}")
print(f"Nyu-York saat qurşağı ilə məlumatlı datetime: {aware_dt_ny}")
print(f"UTC-də məlumatlı datetime: {aware_dt_utc}")