datetime moduli sana va vaqt bilan ishlash uchun mo’ljallangan. Har qanday jiddiy dasturda sana bor: foydalanuvchi qachon ro’yxatdan o’tgan, blogpost qachon e’lon qilingan, buyurtma qachon berilgan. Django modellaridagi created_at va updated_at maydonlari ham aynan vaqt bilan ishlaydi.
datetime — Python standart kutubxonasining sana va vaqtni yaratish, formatlash, solishtirish va ular ustida hisob-kitob qilish uchun mo’ljallangan moduli.
Joriy sana va vaqtni olish
Modulni import qilib, hozirgi vaqtni olamiz:
import datetime
hozir = datetime.datetime.now()
print(hozir)
print(hozir.year)
print(hozir.hour)
2026-07-01 14:30:52.184203
2026
14
now() aynan shu lahzadagi to’liq sana va vaqtni qaytaradi. Undan year, month, day, hour, minute kabi alohida qismlarni ajratib olish mumkin.
Aniq sana yaratish
Istalgan sanani qo’lda ham yaratish mumkin:
import datetime
tugilgan = datetime.datetime(1998, 5, 15)
print(tugilgan)
print(tugilgan.strftime("%d-%m-%Y"))
1998-05-15 00:00:00
15-05-1998
Bu yerda strftime metodi sanani kerakli ko’rinishga formatlaydi. Formatlash belgilari maxsus — eng ko’p ishlatiladiganlarini jadvalda ko’ramiz:
| Belgi | Ma’nosi | Misol |
|---|---|---|
%Y |
to’liq yil | 2026 |
%m |
oy (raqam) | 07 |
%d |
kun | 01 |
%H |
soat | 14 |
%M |
daqiqa | 30 |
%A |
hafta kuni | Wednesday |
Sanalar ustida hisob-kitob — timedelta
Vaqt oralig’ini hisoblash uchun timedelta ishlatiladi. Masalan, 30 kundan keyingi sanani topamiz:
import datetime
bugun = datetime.datetime(2026, 7, 1)
kelasi = bugun + datetime.timedelta(days=30)
print(kelasi.strftime("%d-%m-%Y"))
31-07-2026
timedelta ga days, hours, weeks kabi qiymatlar berib, sanaga qo’shish yoki ayirish mumkin. Bu, masalan, obuna muddatini yoki chegirma tugash sanasini hisoblashda bebaho.
Ikki sana orasidagi farq
Ikki sanani ayirsangiz, natija — timedelta obyekti, undan farqni kun sifatida olish mumkin:
import datetime
boshi = datetime.datetime(2026, 1, 1)
oxiri = datetime.datetime(2026, 7, 1)
farq = oxiri - boshi
print(farq.days, "kun")
181 kun
Bu naqsh yosh hisoblash, muddatni tekshirish yoki hodisalar orasidagi vaqtni o’lchashda ishlatiladi.
Xulosa
Bu darsda datetime moduli bilan joriy vaqtni olish, aniq sana yaratish, strftime bilan formatlash, timedelta orqali hisob-kitob va sanalar farqini topishni o’rgandik. Vaqt bilan to’g’ri ishlash har bir real ilovaning ajralmas qismi. Keyingi darsda math moduli — matematik amallarga o’tamiz.