49 / 59

Python strptime()

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

example.py
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:

kod
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() qanday ishlaydi?

strptime() klass metodi ikkita argumentni oladi:

  • satr (datetime'ga aylantiriladigan)
  • format kodi

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

example.py
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:

kod
dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32

Format kodlari ro'yxati

Quyidagi jadvalda ishlatishingiz mumkin bo'lgan barcha format kodlari ko'rsatilgan.

DirektivaMa'nosiMisol
%aQisqartirilgan hafta kuni nomi.Sun, Mon, ...
%ATo'liq hafta kuni nomi.Sunday, Monday, ...
%wHafta kuni o'nlik son sifatida.0, 1, ..., 6
%dOyning kuni, nol bilan to'ldirilgan o'nlik son.01, 02, ..., 31
%-dOyning kuni o'nlik son sifatida.1, 2, ..., 30
%bQisqartirilgan oy nomi.Jan, Feb, ..., Dec
%BTo'liq oy nomi.January, February, ...
%mOy, nol bilan to'ldirilgan o'nlik son.01, 02, ..., 12
%-mOy o'nlik son sifatida.1, 2, ..., 12
%yAsrsiz yil, nol bilan to'ldirilgan o'nlik son.00, 01, ..., 99
%-yAsrsiz yil o'nlik son sifatida.0, 1, ..., 99
%YAsr bilan yil, o'nlik son sifatida.2013, 2019 va h.k.
%HSoat (24 soatlik), nol bilan to'ldirilgan o'nlik son.00, 01, ..., 23
%-HSoat (24 soatlik) o'nlik son sifatida.0, 1, ..., 23
%ISoat (12 soatlik), nol bilan to'ldirilgan o'nlik son.01, 02, ..., 12
%-ISoat (12 soatlik) o'nlik son sifatida.1, 2, ... 12
%pTil hududiga oid AM yoki PM.AM, PM
%MDaqiqa, nol bilan to'ldirilgan o'nlik son.00, 01, ..., 59
%-MDaqiqa o'nlik son sifatida.0, 1, ..., 59
%SSoniya, nol bilan to'ldirilgan o'nlik son.00, 01, ..., 59
%-SSoniya o'nlik son sifatida.0, 1, ..., 59
%fMikrosoniya o'nlik son sifatida, chapdan nol bilan to'ldirilgan.000000 - 999999
%zUTC siljishi +HHMM yoki -HHMM ko'rinishida.
%ZVaqt mintaqasi nomi.
%jYilning kuni, nol bilan to'ldirilgan o'nlik son.001, 002, ..., 366
%-jYilning kuni o'nlik son sifatida.1, 2, ..., 366
%UYilning hafta raqami (yakshanba haftaning birinchi kuni). Yangi yildagi birinchi yakshanbadan oldingi barcha kunlar 0-hafta hisoblanadi.00, 01, ..., 53
%WYilning hafta raqami (dushanba haftaning birinchi kuni). Yangi yildagi birinchi dushanbadan oldingi barcha kunlar 0-hafta hisoblanadi.00, 01, ..., 53
%cTil hududiga mos sana va vaqt ko'rinishi.Mon Sep 30 07:06:05 2013
%xTil hududiga mos sana ko'rinishi.09/30/13
%XTil hududiga mos vaqt ko'rinishi.07:06:05
%%Literal '%' belgisi.%

strptime()da ValueError

Agar strptime()ga uzatilgan satr (birinchi argument) va format kod (ikkinchi argument) mos kelmasa, ValueError olasiz. Masalan:

example.py
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.

kod
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

QBilimingizni sinab ko'ring
1 / 3

1. strptime() metodi nimani bajaradi?