strptime() bilan tanishish
strptime() metodi berilgan satrdan datetime obyektini yaratadi.
Eslatma: Har qanday satrdan datetime obyektini yarata olmaysiz. Satr muayyan formatda bo'lishi kerak.
1-misol: satrdan datetime obyekti
from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
print("type of date_string =", type(date_string))
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
print("type of date_object =", type(date_object))
Dasturni ishga tushirganingizda, natija bunday bo'ladi:
date_string = 21 June, 2018
type of date_string = <class 'str'>
date_object = 2018-06-21 00:00:00
type of date_object = <class 'datetime.datetime'>
strptime() klass metodi ikkita argumentni oladi:
Ishlatilgan satr va format koddan kelib chiqib, metod unga mos keluvchi datetime obyektini qaytaradi.
Yuqoridagi misolda:
Bu yerda,
%d - Oyning kunini ifodalaydi. Misol: 01, 02, ..., 31%B - Oyning to'liq nomi. Misol: January, February va h.k.%Y - To'rt xonali yil. Misol: 2018, 2019 va h.k.2-misol: satrdan datetime obyekti
from datetime import datetime
dt_string = "12/11/2018 09:15:32"
# Sana dd/mm/yyyy formatida deb hisoblab
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# Sana mm/dd/yyyy formatida deb hisoblab
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)
Dasturni ishga tushirganingizda, natija bunday bo'ladi:
dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32
Quyidagi jadvalda ishlatishingiz mumkin bo'lgan barcha format kodlari ko'rsatilgan.
| Direktiva | Ma'nosi | Misol |
|---|---|---|
%a | Qisqartirilgan hafta kuni nomi. | Sun, Mon, ... |
%A | To'liq hafta kuni nomi. | Sunday, Monday, ... |
%w | Hafta kuni o'nlik son sifatida. | 0, 1, ..., 6 |
%d | Oyning kuni, nol bilan to'ldirilgan o'nlik son. | 01, 02, ..., 31 |
%-d | Oyning kuni o'nlik son sifatida. | 1, 2, ..., 30 |
%b | Qisqartirilgan oy nomi. | Jan, Feb, ..., Dec |
%B | To'liq oy nomi. | January, February, ... |
%m | Oy, nol bilan to'ldirilgan o'nlik son. | 01, 02, ..., 12 |
%-m | Oy o'nlik son sifatida. | 1, 2, ..., 12 |
%y | Asrsiz yil, nol bilan to'ldirilgan o'nlik son. | 00, 01, ..., 99 |
%-y | Asrsiz yil o'nlik son sifatida. | 0, 1, ..., 99 |
%Y | Asr bilan yil, o'nlik son sifatida. | 2013, 2019 va h.k. |
%H | Soat (24 soatlik), nol bilan to'ldirilgan o'nlik son. | 00, 01, ..., 23 |
%-H | Soat (24 soatlik) o'nlik son sifatida. | 0, 1, ..., 23 |
%I | Soat (12 soatlik), nol bilan to'ldirilgan o'nlik son. | 01, 02, ..., 12 |
%-I | Soat (12 soatlik) o'nlik son sifatida. | 1, 2, ... 12 |
%p | Til hududiga oid AM yoki PM. | AM, PM |
%M | Daqiqa, nol bilan to'ldirilgan o'nlik son. | 00, 01, ..., 59 |
%-M | Daqiqa o'nlik son sifatida. | 0, 1, ..., 59 |
%S | Soniya, nol bilan to'ldirilgan o'nlik son. | 00, 01, ..., 59 |
%-S | Soniya o'nlik son sifatida. | 0, 1, ..., 59 |
%f | Mikrosoniya o'nlik son sifatida, chapdan nol bilan to'ldirilgan. | 000000 - 999999 |
%z | UTC siljishi +HHMM yoki -HHMM ko'rinishida. | |
%Z | Vaqt mintaqasi nomi. | |
%j | Yilning kuni, nol bilan to'ldirilgan o'nlik son. | 001, 002, ..., 366 |
%-j | Yilning kuni o'nlik son sifatida. | 1, 2, ..., 366 |
%U | Yilning hafta raqami (yakshanba haftaning birinchi kuni). Yangi yildagi birinchi yakshanbadan oldingi barcha kunlar 0-hafta hisoblanadi. | 00, 01, ..., 53 |
%W | Yilning hafta raqami (dushanba haftaning birinchi kuni). Yangi yildagi birinchi dushanbadan oldingi barcha kunlar 0-hafta hisoblanadi. | 00, 01, ..., 53 |
%c | Til hududiga mos sana va vaqt ko'rinishi. | Mon Sep 30 07:06:05 2013 |
%x | Til hududiga mos sana ko'rinishi. | 09/30/13 |
%X | Til hududiga mos vaqt ko'rinishi. | 07:06:05 |
%% | Literal '%' belgisi. | % |
Agar strptime()ga uzatilgan satr (birinchi argument) va format kod (ikkinchi argument) mos kelmasa, ValueError olasiz. Masalan:
from datetime import datetime
date_string = "12/11/2018"
date_object = datetime.strptime(date_string, "%d %m %Y")
print("date_object =", date_object)
Agar bu dasturni ishga tushirsangiz, xatolik olasiz.
ValueError: time data '12/11/2018' does not match format '%d %m %Y'
Ko'proq o'qing: Python strftime(), Python Program to Convert String to Datetime, How to get current date and time in Python?, Python Get Current time