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

Кез келген дерлік бағдарлама уақытты пайдаланады. Python-да бұл үшін жеке кітапхана әзірленді - уақытонымен әртүрлі әрекеттерді орындау үшін қолданылады. Оның жұмыс істеуі үшін ол алдымен кодтың басында жариялануы керек. Бұл жол осы үшін пайдаланылады:

импорт уақыты

Бұл модульді іс жүзінде қалай дұрыс пайдалану керектігінің әртүрлі нұсқаларын қарастырайық. 

Дәуірден кейінгі секунд санын анықтау

Бұл тапсырманы орындау үшін функция бар уақыт() параметрді қабылдамайды. Оның қайтару мәні 1 жылдың 1970 қаңтарынан бастап қанша секунд өткенін білдіреді. Python тілінде бұл уақыт дәуірдің басы деп аталады. Кем дегенде Unix отбасының операциялық жүйелерінде.

Windows жүйесіне келетін болсақ, күн бірдей, бірақ осы күнге дейін болған теріс мәндермен проблемалар болуы мүмкін. 

Қолданылатын уақыт белдеуі - UTC.

импорт уақыты

секунд = уақыт.уақыт()

басып шығару («Дәуірден кейінгі секундтар =», секунд)

Бұл функцияның күрделілігі, ол нақты күнді көрсетпейді, тек секундтар санын көрсетеді. Барлығына таныс пішімге түрлендіру үшін нақты ақпаратты пайдалану қажет. Ол үшін функция пайдаланылады time.ctime().

Күнді, уақытты әдеттегі форматта қайтару

Уақытты әдеттегі форматта қайтару үшін әдіс бар time.ctime(). Жақша айнымалыны немесе дәуірдің басынан бері өткен секундтар санын көрсететін санды көрсетеді. Бұл әдіс барлық күн мен уақыт сипаттамаларын, соның ішінде күнді, жылды, сағаттар санын, минуттарды, секундтарды және апта күнін қайтарады.

Бұл функцияны дәлелдерсіз де пайдалануға болады. Бұл жағдайда ол ағымдағы күнді, уақытты және т.б. қайтарады.

Міне, мұны көрсететін код үзіндісі.

импорт уақыты

басып шығару(time.ctime())

23 қазан 10:18:23 2018 ж

Соңғы жол - Python аудармашысы жұмыс істеп тұрған консольге басып шығарылатын нәрсе. Әдіс қабылданған секундтар санын пайдаланушыға таныс пішінге автоматты түрде пішімдейді. Рас, жоғарыда сипатталған барлық элементтер сирек қолданылады. Әдетте, сіз тек уақытты немесе тек бүгінгі күнді алуыңыз керек. Бұл үшін бөлек функция пайдаланылады - strftime(). Бірақ оны қарастырмас бұрын, біз сыныпты талдауымыз керек 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

басып шығару («Бағдарлама басталды...»)

уақыт.ұйқы (кідірту)

басып шығару(str(кідірту) + » секунд өтті.»)

Нәтижесінде біз мынаны аламыз:

Бағдарлама басталды…

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

Шығарылымнан көріп отырғанымыздай, бағдарлама алдымен оның басталғаны туралы хабарлайды. Ал он секундтан кейін ол бұл уақыттың өтіп кеткенін жазды.

Функция кідірту ұзақтығын миллисекундпен көрсетуге мүмкіндік береді. Ол үшін функция аргументінің бөлшек мәндерін қолданамыз ұйқы. Мысалы, 0,1. Бұл кідіріс 100 миллисекунд болады дегенді білдіреді.

Жергілікті уақытты алыңыз

Localtime() функциясын пайдалана отырып, бағдарлама белгілі бір уақыт белдеуіндегі дәуірдің басынан бергі секундтар санын алады. 

Түсінікті болу үшін мысал кодын берейік.

импорт уақыты

нәтиже = time.localtime(1575721830)

басып шығару («нәтиже:», нәтиже)

басып шығару(«ngod:», нәтиже.tm_year)

басып шығару («tm_saat:», нәтиже.tm_сағат)

Дәуірден бергі секундтар санына негізделген UTC ішіндегі struct_time мәнін қайтарыңыз

Бұл тапсырма time.gmtime() арқылы қол жеткізіледі. әдіс. Мысал келтірсек, түсінікті болады.

импорт уақыты

нәтиже = time.gmtime(1575721830)

басып шығару («нәтиже:», нәтиже)

басып шығару(«ngod:», нәтиже.tm_year)

басып шығару («tm_saat:», нәтиже.tm_сағат)

Егер сіз осы әрекеттер тізбегін қоссаңыз, онда уақыт, жыл және уақыт белдеуіне қатысты элементтер жинағы көрсетіледі.

Жергілікті уақытқа автоматты түрлендіру арқылы дәуірдің басынан бергі секундтар санын қайтарыңыз

Егер сіз осындай тапсырмаға тап болсаңыз, ол әдіс арқылы жүзеге асырылады mktime(), ол алады құрылым_уақыты. Осыдан кейін ол функцияның кері әрекетін орындайды localtime(). Яғни, ол жергілікті уақыт белдеуіне сәйкес уақытты уақыт белдеуі үшін реттелген дәуірдің басынан бері өткен секундтар санына түрлендіреді.

mktime() және localtime() функциялары бір-бірімен тығыз байланысты. Бұл код үзіндісі мұны анық көрсетеді. Оның қалай жұмыс істейтінін тереңірек түсіну үшін оны қарастырайық. 

импорт уақыты

секунд = 1575721830

# құрылым_уақытын қайтарады

t = уақыт.жергілікті уақыт(секунд)

басып шығару(«t1: «, t)

# құрылым_уақытынан секундтарды қайтарады

s = уақыт.мкуақыт(т)

басып шығару («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. Ыңғайлы пішімге түрлендіру. Сонымен қатар, қандай элементтердің қандай ретпен көрсетілетінін бағдарламашы өзі белгілей алады. 

Басқа да бірқатар мүмкіндіктер бар, бірақ бүгін біз ең негізгілерін талдадық. Олар уақытпен жұмыс істейтін кез келген дерлік бағдарламада пайдалы болады. Іске сәт.

пікір қалдыру