CodeGym /Kurslar /Python SELF AZ /Vaxt zonaları ilə işə giriş

Vaxt zonaları ilə işə giriş

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Zaman zonalarının önəmi

Zaman zonaları – bu sadəcə beynəlxalq reyslərdə bir az jetlaq keçirmək üçün rahat bir bəhanə deyil. Onlar proqramlaşdırmada mühüm rol oynayırlar, xüsusilə qlobal tətbiqlər və xidmətlərdən söhbət gedəndə. Zaman zonaları üzrə vaxtı izləmək məlumatların saxlanması və göstərilməsi, iş tapşırıqlarının planlaşdırılması, dünya üzrə komandaların koordinasiyası və daha bir çox şey üçün zəruridir. Zaman zonalarına diqqət yetirmədən kodunuz əsl vaxt anomaliyası yarada bilər və heç kim bunu arzulamaz, hə?

Zaman zonası nədir?

Zaman zonası – bu, bütün saatların eyni standart vaxta uyğun göstərildiyi bir regiondur. Hər bir zaman zonası Universal Koordinasiya Edilmiş Vaxtdan (UTC) olan ofset ilə müəyyən olunur. Məsələn, əgər sizin zonada vaxt UTC-dən iki saat irəlidirsə, sizin saat qurşağınız UTC+2 kimi göstərilir.

Zamanın müxtəlif zonalara çevrilməsi

Vaxtla əlaqəli məlumatlarla işləyəndə tez-tez bir zonadan digərinə zamanı uyğunlaşdırmaq zərurəti yaranır. Məsələn, siz marketinq kampaniyasının serverdə, hansı ki, UTC vaxtı ilə işləyir, yayınlanmasını planlaşdırırsınız, amma bunun Nyu-York vaxtı ilə (UTC-5) dəqiq səhər 9-da baş verməsini istəyirsiniz. Burada zaman zonaları köməyə gəlir.

Bu prosesi asanlaşdırmaq üçün Python pytz kitabxanasını təqdim edir, hansı ki, zonalar arasında vaxtı konvert etməyə kömək edir. Gəlin onun istifadəsinə dair nümunələrə birlikdə baxaq.

2. Python-da zaman zonaları ilə işləmək

Zaman zonalarını idarə etmək üçün pytz-dən istifadə

Quraşdırmadan sonra pytz ilə testlərə başlaya bilərik. Kitabxananı datetime ilə birlikdə import edirik:

Python

from datetime import datetime
import pytz

Müəyyən zaman zonasındakı cari vaxtı əldə etmək

Gəlin, Nyu Yorkda saatın neçə olduğunu öyrənək:

Python

# Nyu-York üçün zaman zonası obyekti yaradırıq
ny_tz = pytz.timezone('America/New_York')

# UTC zamanı əldə edirik
utc_now = datetime.now(pytz.utc)

# UTC zamanını Nyu-York zamanına çeviririk
ny_time = utc_now.astimezone(ny_tz)

# Nəticəni çap edirik
print("Hazırda Nyu-Yorkda saat:", ny_time)

Bu kod UTC vaxtını Nyu-York vaxtına çevirir və sonra oxunaqlı formatda göstərir.

Zonalar arasında vaxtın konvertasiyası

Təsəvvür edin ki, Londonda hansısa bir mühüm hadisənin vaxtı var və Tokio vaxtı ilə onun nə vaxt baş verəcəyini bilməlisiniz.

Python

# Londondakı hadisə vaxtı
event_time = datetime(2023, 10, 31, 15, 0, 0, tzinfo=pytz.utc).astimezone(pytz.timezone('Europe/London'))

# Vaxtı Tokiyoya çeviririk
tokyo_tz = pytz.timezone('Asia/Tokyo')
event_time_tokyo = event_time.astimezone(tokyo_tz)

print("Tokioda hadisə vaxtı:", event_time_tokyo)

3. Python-da zaman zonaları ilə ətraflı iş

Mövcud zaman zonalarının siyahısı

pytz.all_timezones vasitəsilə pytz kitabxanası tərəfindən dəstəklənən bütün zaman zonalarının siyahısını əldə etmək olar.

Python

import pytz

print("Zaman zonalarına nümunə:")
for timezone in pytz.all_timezones[:5]:  # İlk 5 zaman zonasını göstərmək
    print(timezone)

Nəticə (bir hissəsi):

Zaman zonalarına nümunə:
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Zaman zonasının təyin edilməsi və `datetime` obyektinin yaradılması

pytz.timezone() vasitəsilə tarix və zaman üçün lazımi zaman zonasını təyin etmək mümkündür. Müəyyən bir zaman zonası ilə datetime obyektinin necə yaradılmasını nəzərdən keçirək.

Python

from datetime import datetime
import pytz

# "Europe/Moscow" zaman zonasını seçirik
moscow_timezone = pytz.timezone("Europe/Moscow")
current_time_moscow = datetime.now(moscow_timezone)
print("Moskvada indiki zaman:", current_time_moscow)

Yay vaxtına keçidin nəzərə alınması

Zaman zonalarının vacib aspektlərindən biri yay vaxtına keçidin nəzərə alınmasıdır, bu pytz-də avtomatlaşdırılıb. Məsələn, ABŞ-da zamanla işləyirsinizsə, kitabxana yay vaxtı tətbiq edildiyi halda avtomatik olaraq saat fərqini tətbiq edir.

Python

from datetime import datetime
import pytz

# Yay vaxtı dövrünə düşən tarixi təyin edirik
date_in_summer = datetime(2024, 7, 1, 12, 0, 0)
ny_timezone = pytz.timezone("America/New_York")
ny_summer_time = ny_timezone.localize(date_in_summer)
print("Nyu-Yorkda yay vaxtı:", ny_summer_time)

# Yay vaxtı dövrünə düşməyən tarixi təyin edirik
date_in_winter = datetime(2024, 12, 1, 12, 0, 0)
ny_winter_time = ny_timezone.localize(date_in_winter)
print("Nyu-Yorkda qış vaxtı:", ny_winter_time)

Burada pytz avtomatik olaraq müəyyən edir ki, 1 iyul yay vaxtı dövrünə aiddir və bir saatlıq fərqi tətbiq edir.

Zaman zonaları ilə iş üçün faydalı funksiyalar

  • Bütün zaman zonalarının əldə edilməsi: pytz.all_timezones bütün zaman zonalarının siyahısını qaytarır.
  • UTC-yə konvertasiya: astimezone(pytz.utc) metodu istənilən zamanı UTC-yə çevirir.
  • Sətir formatında olan zamandan datetime formatına keçid: datetime.strptime() istifadə edərək sətir formatındakı zamanı datetime-ə çevirə və ona zaman zonası əlavə edə bilərsiniz.
  • Zaman zonalarının yenilənməsi: Zaman zonalarını yeniləmək üçün pytz.update() istifadə olunur.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION