Python 3-те убакыт модулу. Негизги методдор, шаблондор, мисалдар

Дээрлик бардык программалар убакытты колдонот. Pythonдо бул үчүн өзүнчө китепкана иштелип чыккан - убакытаны менен ар кандай аракеттерди жасоо үчүн колдонулат. Анын иштеши үчүн алгач коддун башында жарыяланышы керек. Бул линия бул үчүн колдонулат:

импорттоо убактысы

Бул модулду иш жүзүндө кантип туура колдонуунун ар кандай варианттарын карап көрөлү. 

доордон кийинки секунданын санын аныктоо

Бул милдетти аткаруу үчүн, бир функция бар убакыт() эч кандай параметрди талап кылбайт. Анын кайтаруу мааниси 1-жылдын 1970-январынан бери канча секунд өткөнүн билдирет. Python тилинде бул убакыт доордун башталышы деп аталат. Жок дегенде Unix үй-бүлөсүнүн операциялык системаларында.

Windows үчүн, датасы бирдей, бирок ушул күнгө чейин болгон терс маанилер менен көйгөйлөр болушу мүмкүн. 

Колдонулган убакыт алкагы - UTC.

импорттоо убактысы

секунд = time.time()

print("Доордон бери секунддар =", секунд)

Бул функциянын татаалдыгы, ал так датаны эмес, секунданын санын гана көрсөтөт. Баарына тааныш форматка айландыруу үчүн так маалыматты колдонуу керек. Бул үчүн, функция колдонулат time.ctime().

Кадимки форматта күндү, убакытты кайтаруу

Убакытты кадимки форматта кайтаруу үчүн бир ыкма бар time.ctime(). кашаалар доордун башынан бери өткөн секунданын санын көрсөтүүчү өзгөрмө же санды көрсөтөт. Бул ыкма бардык дата жана убакыт мүнөздөмөлөрүн, анын ичинде датаны, жылды, сааттардын санын, мүнөттөрдү, секунддарды жана жуманын күнүн кайтарат.

Бул функцияны аргументсиз да колдонсо болот. Бул учурда, ал учурдагы датаны, убакытты жана башкаларды кайтарат.

Бул жерде муну көрсөткөн код үзүндүсү.

импорттоо убактысы

басып чыгаруу(time.ctime())

Шейшемби 23 октябрь 10:18:23 2018

Акыркы сап - Python котормочусу иштеп жаткан консолго басылган нерсе. Метод автоматтык түрдө алынган секунданын санын колдонуучуга тааныш формага форматтайт. Ырас, жогоруда сүрөттөлгөн бардык элементтер сейрек колдонулат. Эреже катары, сиз же убакытты гана, же бүгүнкү күндү гана алышыңыз керек. Бул үчүн өзүнчө функция колдонулат - strftime(). Бирок биз аны карап чыгуудан мурун классты талдап алышыбыз керек time.struct_time.

class time.struct_time

Бул бир катар ыкмалар менен кабыл алынышы мүмкүн болгон аргументтердин категориясы. Анын эч кандай варианттары жок. Бул аталган интерфейси бар кортеж. Жөнөкөй сөз менен айтканда, бул класстын элементтерине аты менен да, индексинин номери боюнча да кирүүгө болот.

Ал төмөнкү атрибуттардан турат.Python 3-те убакыт модулу. Негизги методдор, шаблондор, мисалдар

Көңүл бургула! Бир катар башка программалоо тилдеринен айырмаланып, бул жерде ай нөлдөн 1ге чейин эмес, 12ден 11ге чейин болушу мүмкүн.

Белгилүү бир форматты кайтаруу

Функцияны колдонуу strftime() сиз жылды, айды, күндү, саатты, мүнөттөрдү, секунддарды жекече алып, аларды текст сабына кайтара аласыз. Андан кийин ал функцияны колдонуу менен колдонуучуга басып чыгарылышы мүмкүн басып чыгаруу () же башка жол менен иштетилген.

Аргумент катары функция бул модулдун башка функциялары тарабынан кайтарылган маанини алган каалаган өзгөрмөлөрдү ала алат. Мисалы, сиз ага жергиликтүү убакытты которо аласыз (ал кийинчерээк талкууланат), андан керектүү маалыматтарды чыгарат.

Бул жерде биз муну жасай турган код үзүндүсү.

импорттоо убактысы

name_tuple = time.localtime() # struct_time алуу

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», аталган_телеграф)

басып чыгаруу(убакыт_сапы)

Бул кодду иштетсеңиз, учурдагы дата жана убакыт көрсөтүлөт. Элементтердин форматы жана ырааттуулугу өзгөрүшү мүмкүн. Алар төмөнкүдөй:

  1. %Y — жыл.
  2. %m - ай.
  3. %d – күн.
  4. %H – убакыт.
  5. %M – мүнөт.
  6. %S – экинчи.

Демек, сиз аны ай жана күн боюнча гана чыгара аласыз. Бул үчүн жөн гана жылды көрсөтүүгө буйрук берүүнүн кереги жок. Башкача айтканда, жогорудагы формулага %m/%d аргумент катары жазыңыз, бүттү. Же тескерисинче, %d/%m. 

Чынында, сап литералдарынын саны алда канча көп. Бул жерде алар майда-чүйдөсүнө чейин сүрөттөлгөн таблица болуп саналат.Python 3-те убакыт модулу. Негизги методдор, шаблондор, мисалдар

Жипти белгилүү бир секундага кийинкиге калтырыңыз

Бул үчүн, функция колдонулат уктоо (). Программалоо тапшырмаларынын бир кыйла чоң блогу убакыттын өтүшү менен байланышкан. Кээде кийинки кадамды белгилүү бир убакытка жылдырууга туура келет. Мисалы, сиз иштеп чыгуу үчүн белгилүү бир убакытты талап кылган маалымат базасы менен иштешүү керек болсо.

Аргумент катары, метод алгоритмден кийинки кадамды кечиктирүү үчүн секунданын санын билдирген маанини колдонот.

Мисалы, бул үзүндүдө кечигүү 10 секунд.

импорттоо убактысы

тыныгуу = 10

басып чыгаруу («Программа башталды...»)

убакыт.уйку(тыным)

print(str(тыным) + » секунд өттү.»)

Натыйжада, биз муну алабыз:

Программа башталды…

10 секунд өттү.

Чыгуудан көрүнүп тургандай, программа алгач башталганы тууралуу кабарлайт. Анан он секунддан кийин ал бул убакыт өтүп кеткенин жазды.

Функция паузанын узактыгын миллисекунд менен аныктоого мүмкүндүк берет. Бул үчүн, функциянын аргументинин бөлчөк маанилерин колдонобуз уйку. Мисалы, 0,1. Бул кечигүү 100 миллисекунд болот дегенди билдирет.

Жергиликтүү убакытты алыңыз

localtime() функциясын колдонуп, программа белгилүү бир убакыт алкагындагы доор башталгандан берки секунданын санын алат. 

Келгиле, түшүнүктүүлүк үчүн мисал кодду берели.

импорттоо убактысы

натыйжа = time.localtime(1575721830)

басып чыгаруу («натыйжа:», натыйжа)

print(«ngod:», result.tm_year)

print(«tm_saat:», натыйжа.tm_saat)

Доордон кийинки секунданын санына жараша UTC ичинде struct_time кайтарылат

Бул тапшырма time.gmtime() аркылуу ишке ашат. ыкмасы. Мисал келтирсек түшүнүктүү болот.

импорттоо убактысы

натыйжа = time.gmtime(1575721830)

басып чыгаруу («натыйжа:», натыйжа)

print(«ngod:», result.tm_year)

print(«tm_saat:», натыйжа.tm_saat)

Эгер сиз бул аракеттердин ырааттуулугун күйгүзсөңүз, анда убакыт, жыл жана убакыт алкагына тиешелүү элементтердин жыйындысы көрсөтүлөт.

Жергиликтүү убакытка автоматтык түрдө которуу менен доор башталгандан берки секунданын санын кайтарыңыз

Эгерде сизде ушундай тапшырма бар болсо, анда ал ыкманы колдонуу менен ишке ашырылат mktime(), алат структура_убакыт. Андан кийин ал функциянын тескери аракетин аткарат жергиликтүү убакыт(). Башкача айтканда, ал жергиликтүү убакыт алкагына ылайык убакытты убакыт алкагына ылайыкташтырылган доор башталгандан бери өткөн секундалардын санына айлантат.

mktime() жана localtime() функциялары бири-бири менен тыгыз байланышта. Бул код үзүндүсү муну ачык көрсөтүп турат. Анын кантип иштээрин тереңирээк түшүнүү үчүн аны карап көрөлү. 

импорттоо убактысы

секунд = 1575721830

# структуралык_убакытты кайтарат

t = time.localtime(секунд)

басып чыгаруу(«t1: «, t)

# структуралык_убакыттан секунддарды кайтарат

s = time.mktime(t)

басып чыгаруу(«ns:», секунд)

өзгөрмө экенин көрөбүз секунд доорунан бери 1575721830 секунд дайындалды. Биринчиден, программа так датаны, убакытты жана башка параметрлерди алат, бул мааниге таянып, аны өзгөрмөгө коюңуз. t, анан анын мазмунун өзгөрмөгө айлантат s.

Андан кийин жаңы сызык чыгып, консолдо секунданын санын көрсөтөт. Бул секунданын өзгөрмөсүнө ыйгарылган сан менен бирдей болорун текшере аласыз.

struct_time дегенге шилтеме берген 9 сандан чыгуу күнү

Бизде жылды, айды, күндү, жуманын күнүн жана башка бир катар маанилерди билдирген 9 сан бар дейли, аларды бир сапка бириктиришибиз керек. Бул үчүн, функция колдонулат asctime(). Ал кабыл алат же даяр структуралык_убакыт, же 9 баалуулуктан турган башка кортеж. Андан кийин, сап кайтарылат, бул дата, убакыт жана башка бир катар параметрлер. 

Бул ыкманы колдонуучу тарабынан берилген ар башка маалыматтарды бир өзгөрмөгө алып келүү үчүн колдонуу абдан ыңгайлуу..

Мисалы, бул колдонуучу өзүнчө күндү, айды, жылды, жуманын күнүн жана окуяга каттоого байланыштуу башка маалыматтарды көрсөткөн программа болушу мүмкүн. Андан кийин алынган маалымат базага киргизилип, андан кийин аны сураган башка адамга берилет.

Python саптын негизинде убакыт жана дата алуу

Колдонуучу бири-биринен айырмаланган маалыматтарды көрсөттү дейли, биз аларды адам киргизген форматта бир сапка бириктирип, андан кийин башка өзгөрмөгө көчүрмөсүн жасап, аны ошол жерде стандарттык форматка кайра түзүшүбүз керек. Бул үчүн, функция колдонулат time.strptime().

Ал бул маани көрсөтүлгөн өзгөрмөнү алат жана бизге мурунтан эле тааныш болгон нерсени кайтарат структура_убакыт.

Түшүнүктүү болуш үчүн биз ушундай программаны жазабыз.

импорттоо убактысы

time_string = "15-июнь, 2019-жыл"

натыйжа = time.strptime(time_string, «%d %B, %Y»)

басып чыгаруу (натыйжа)

Чыгуу кандай болорун ойлойсузбу? Төмөнкү сызыкты карап туруп, болжолдоого аракет кылыңыз. Анан жоопту текшериңиз.

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)

Бир сөз менен айтканда, Python тилинде даталар жана убакыттар менен иштөө такыр кыйын эмес. Бул көрсөтмөлөрдү аткаруу жетиштүү, жана баары ойдогудай болот. Китепкананы колдонуу убакыт колдонуучу убакыт менен иштөө үчүн көптөгөн мүмкүнчүлүктөрдү алат, мисалы:

  1. Белгиленген убакытка программанын аткарылышын токтото туруу.
  2. Доордон бери өткөн убакытты секунддар менен көрсөт. Бул маалымат убакытты жыйынтыктоо же ага башка математикалык операцияларды аткаруу үчүн колдонулушу мүмкүн.
  3. Ыңгайлуу форматка айландыруу. Анын үстүнө, кайсы элементтер көрсөтүлө турганын жана кандай ырааттуулукта көрсөтүлөрүн программист өзү орното алат. 

Ошондой эле бир катар башка мүмкүнчүлүктөр бар, бирок бүгүн биз эң негизгилерин талдап чыктык. Алар кандайдыр бир жол менен убакыттын өтүшү менен иштеген дээрлик бардык программаларда пайдалуу болот. Ийгиликтер.

Таштап Жооп