time moduli bilan tanishish
Pythondagi time moduli vaqtga oid vazifalarni bajarish uchun funksiyalarni taqdim etadi.
Vaqtga oid vazifalarga quyidagilar kiradi,
Pythonda, time() funksiyasi epoch'dan (vaqt boshlanadigan nuqta) beri o'tgan soniyalar sonini qaytaradi.
Unix tizimi uchun, 1970-yil 1-yanvar, 00:00:00 (UTC) — epoch.
Keling, bir misolni ko'ramiz,
# time modulini import qilish
import time
# epoch'dan beri o'tgan joriy vaqtni soniyalarda olish
seconds = time.time()
print("Seconds since epoch =", seconds)
# Natija: Seconds since epoch = 1672214933.6804628
Yuqoridagi misolda, biz epoch'dan beri o'tgan joriy vaqtni soniyalarda olish uchun time.time() funksiyasidan foydalandik va natijani chop etdik.
Pythonda time.ctime() funksiyasi epoch'dan beri o'tgan soniyalarni argument sifatida oladi va lokal vaqtni ifodalovchi satrni qaytaradi.
import time
# epoch'dan beri o'tgan soniyalar
seconds = 1672215379.5045543
# epoch'dan beri o'tgan vaqtni soniyalarda o'qilishi oson formatga aylantirish
local_time = time.ctime(seconds)
print("Local time:", local_time)
Natija
Local time: Wed Dec 28 08:16:19 2022
Bu yerda, biz epoch'dan beri o'tgan vaqtni soniyalarda o'qilishi oson formatga aylantirish uchun time.ctime() funksiyasidan foydalandik va natijani chop etdik.
sleep() funksiyasi joriy oqim (thread)ning bajarilishini berilgan soniyalar soniga to'xtatib turadi (kechiktiradi).
import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")
Natija
Printed immediately.
Printed after 2.4 seconds.
Mana bu dastur qanday ishlaydi:
"Printed immediately" chop etiladitime.sleep(2.4) bajarilishni 2.4 soniyaga to'xtatadi."Printed after 2.4 seconds" chop etiladi.sleep() haqida ko'proq bilish uchun, iltimos Python sleep() sahifasiga tashrif buyuring.
localtime() funksiyasi epoch'dan beri o'tgan soniyalar sonini argument sifatida oladi va lokal vaqtda struct_timeni (struct_time'ga mos 9 ta elementdan iborat kortej) qaytaradi.
import time
result = time.localtime(1672214933)
print("result:", result)
print("\nyear:", result.tm_year)
print("tm_hour:", result.tm_hour)
Natija
result: time.struct_time(tm_year=2022, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=8, tm_sec=53, tm_wday=2, tm_yday=362, tm_isdst=0)
year: 2022
tm_hour: 8
Bu yerda, agar localtime()ga hech qanday argument yoki None uzatilmasa, time() qaytargan qiymat ishlatiladi.
gmtime() funksiyasi epoch'dan beri o'tgan soniyalar sonini argument sifatida oladi va UTC bo'yicha struct_timeni qaytaradi.
import time
result = time.gmtime(1672214933)
print("result:", result)
print("\nyear:", result.tm_year)
print("tm_hour:", result.tm_hour)
Natija
result: time.struct_time(tm_year=2022, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=8, tm_sec=53, tm_wday=2, tm_yday=362, tm_isdst=0)
year: 2022
tm_hour: 8
Bu yerda, agar gmtime()ga hech qanday argument yoki None uzatilmasa, time() qaytargan qiymat ishlatiladi.
mktime() funksiyasi struct_timeni (struct_time'ga mos 9 ta elementdan iborat kortej) argument sifatida oladi va lokal vaqtda epoch'dan beri o'tgan soniyalarni qaytaradi.
struct_time quyidagi tuzilishga ega:
(yil, oy, kun, soat, daqiqa, soniya, hafta kuni, yilning kuni, yoz vaqti)
Keling, bir misolni ko'ramiz,
import time
time_tuple = (2022, 12, 28, 8, 44, 4, 4, 362, 0)
# time_tuple'ni epoch'dan beri o'tgan soniyalarga aylantirish
seconds = time.mktime(time_tuple)
print(seconds)
# Natija: 1672217044.0
Bu yerda, biz time_tupleni epoch'dan beri o'tgan soniyalarga aylantirdik.
Pythonda, asctime() funksiyasi struct_timeni argument sifatida oladi va uni ifodalovchi satrni qaytaradi.
mktime()ga o'xshab, time_tuple quyidagi tuzilishga ega:
(yil, oy, kun, soat, daqiqa, soniya, hafta kuni, yilning kuni, yoz vaqti)
Keling, bir misolni ko'ramiz,
import time
t = (2022, 12, 28, 8, 44, 4, 4, 362, 0)
result = time.asctime(t)
print("Result:", result)
# Natija: Result: Fri Dec 28 08:44:04 2022
Bu yerda, ko'rishimiz mumkinki, time.asctime() vaqt kortejini o'qilishi oson satrga aylantiradi.
strftime() funksiyasi struct_timeni (yoki unga mos kortejni) argument sifatida oladi va ishlatilgan format kodiga asoslanib uni ifodalovchi satrni qaytaradi. Masalan,
import time
named_tuple = time.localtime() # struct_time'ni olish
time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple)
print(time_string)
Natija
12/29/2022, 08:36:22
Bu yerda, %Y, %m, %d, %H va h.k. — format kodlari.
%Y - yil [0001,..., 2018, 2019,..., 9999]%m - oy [01, 02, ..., 11, 12]%d - kun [01, 02, ..., 30, 31]%H - soat [00, 01, ..., 22, 23]%M - daqiqa [00, 01, ..., 58, 59]%S - soniya [00, 01, ..., 58, 61]Ko'proq bilish uchun, tashrif buyuring: time.strftime().
strptime() funksiyasi vaqtni ifodalovchi satrni tahlil qiladi (parse) va struct_timeni qaytaradi.
import time
time_string = "14 July, 2023"
result = time.strptime(time_string, "%d %B, %Y")
print(result)
Natija
time.struct_time(tm_year=2023, tm_mon=7, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=-1)
Bu yerda, strptime() satrni tahlil qiladi va uni struct_time obyektiga aylantiradi.