Временски модул во Python 3. Главни методи, шаблони, примери

Речиси секоја програма користи време. Во Python, за ова е развиена посебна библиотека - времесе користи за извршување на различни дејства со него. За да функционира, прво мора да се декларира на почетокот на кодот. Оваа линија се користи за ова:

време за увоз

Ајде да разгледаме различни опции за тоа како правилно да го користиме овој модул во пракса. 

Одредување на бројот на секунди од епохата

За да се постигне оваа задача, постои функција време() што не зема никакви параметри. Неговата повратна вредност е колку секунди поминале од 1 јануари 1970 година. Во Пајтон, ова време се нарекува почеток на една епоха. Барем во оперативните системи од семејството Unix.

Што се однесува до Windows, датумот е ист, но може да има проблеми со негативните вредности што беа пред овој датум. 

Користената временска зона е UTC.

време за увоз

секунди = време.време()

печатење („Секунди од епоха =“, секунди)

Комплексноста на оваа функција е што не го прикажува точно датумот, туку само бројот на секунди. За да се претворите во формат познат на сите, треба да користите точни информации. За ова се користи функцијата време.ctime().

Враќање на датумот, времето во вообичаениот формат

За да го вратите времето во вообичаен формат, постои метод време.ctime(). Заградите означуваат променлива или број што го означува бројот на секунди што поминале од почетокот на епохата. Овој метод ги враќа сите карактеристики на датумот и времето, вклучувајќи го датумот, годината, бројот на часови, минути, секунди и ден во неделата.

Оваа функција може да се користи и без аргументи. Во овој случај, го враќа тековниот датум, време и така натаму.

Еве фрагмент од код што го покажува ова.

време за увоз

print(time.ctime())

Вто 23 октомври 10:18:23 2018 година

Последната линија е она што се печати на конзолата каде работи толкувачот на Python. Методот автоматски го форматира примениот број на секунди во форма позната на корисникот. Точно, сите елементи опишани погоре ретко се користат. Како по правило, треба да го добиете или само времето, или само денешниот датум. За ова се користи посебна функција - strftime(). Но, пред да размислиме, треба да ја анализираме класата време.struct_time.

време на часот.struct_time

Ова е категорија на аргументи што може да се прифатат со низа методи. Нема никакви опции. Тоа е торка со именуван интерфејс. Едноставно кажано, до елементите на оваа класа може да се пристапи и по име и по број на индекс.

Се состои од следните атрибути.Временски модул во Python 3. Главни методи, шаблони, примери

Внимание! За разлика од голем број други програмски јазици, овде месецот може да се движи од 1 до 12, а не од нула до 11.

Враќање на специфичен формат

Користење на функцијата strftime () можете да ги добиете годината, месецот, денот, часот, минутите, секундите поединечно и да ги вратите во текстуална низа. Потоа може да се испечати на корисникот користејќи ја функцијата печатење () или на друг начин обработени.

Како аргумент, функцијата може да земе која било променлива што зема вредност вратена од другите функции на овој модул. На пример, можете да го пренесете локалното време на него (за тоа ќе се дискутира подоцна), од кое ќе ги извлече потребните податоци.

Еве го фрагментот од кодот каде што го правиме тоа.

време за увоз

named_tuple = time.localtime() # get struct_time

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», named_tuple)

печатење (временска_низа)

Ако го вклучите овој код, ќе се прикажат тековниот датум и време. Форматот и редоследот на елементите може да се сменат. Тие се како што следува:

  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 («nгод:», result.tm_year)

печатење («tm_hour:», result.tm_hour)

Врати struct_time во UTC врз основа на бројот на секунди од епохата

Оваа задача се постигнува со користење на time.gmtime(). метод. Ќе биде појасно ако дадеме пример.

време за увоз

резултат = time.gmtime(1575721830)

печатење („резултат:“, резултат)

print («nгод:», result.tm_year)

печатење («tm_hour:», result.tm_hour)

Ако ја вклучите оваа низа на дејства, тогаш ќе се прикаже збир на елементи поврзани со времето, годината и временската зона.

Вратете го бројот на секунди од почетокот на епохата со автоматско претворање во локално време

Ако сте соочени со таква задача, таа се спроведува со користење на методот mktime (), што трае struct_time. После тоа, го врши обратното дејство на функцијата локално време(). Односно, го претвора времето според локалната временска зона во бројот на секунди што поминале од почетокот на епохата, приспособено за временската зона.

Функциите mktime() и localtime() се тесно испреплетени. Овој фрагмент од код јасно го покажува ова. Ајде да го погледнеме за да разбереме подлабоко како функционира. 

време за увоз

секунди = 1575721830

# враќа struct_time

t = време.локално време(секунди)

печатење («t1: «, t)

# враќа секунди од struct_time

s = време.mktime(t)

печатење («ns:», секунди)

Гледаме дека променливата секунди е доделен 1575721830 секунди од епохата. Прво, програмата го добива точниот датум, време и други параметри, врз основа на оваа вредност, ставете ја во променлива t, а потоа ја претвора неговата содржина во променлива s.

После тоа отчукува нова линија и го прикажува бројот на секунди во конзолата. Можете да проверите дали ќе биде истиот број што беше доделен на променливата секунди.

Излезен датум од 9 броеви кои се однесуваат на struct_time

Да претпоставиме дека имаме 9 броеви кои ја претставуваат годината, месецот, датумот, денот во неделата и голем број други вредности и треба да ги комбинираме во една низа. За ова се користи функцијата asctime(). Таа прифаќа или е подготвена struct_time, или која било друга торка од 9 вредности што го означува истото. После тоа, се враќа низа, која е датум, време и голем број други параметри. 

Многу е погодно да се користи овој метод за да се донесат различните податоци одредени од корисникот во една променлива..

На пример, тоа може да биде програма каде што корисникот одделно ги одредува денот, месецот, годината, денот во неделата и други податоци во врска со регистрацијата за некој настан. После тоа, добиените информации се внесуваат во базата на податоци и потоа се издаваат на друго лице кое го бара.

Добивање време и датум врз основа на низата на Пајтон

Да претпоставиме дека корисникот има наведено различни податоци, и ние треба да ги комбинираме во една линија во форматот што го внесе лицето, а потоа да направиме копија во друга променлива и повторно да ја изградиме во стандарден формат таму. За ова се користи функцијата време.strptime().

Потребна е променлива во која е наведена оваа вредност и ја враќа веќе познатата за нас struct_time.

За јасност, ќе напишеме таква програма.

време за увоз

time_string = «15 јуни, 2019 година»

резултат = time.strptime(временска_низа, «%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. Претворете во пригоден формат. Покрај тоа, самиот програмер може да постави кои елементи ќе се прикажуваат и во која секвенца. 

Има и низа други можности, но денес ги анализиравме најосновните. Тие ќе ни се најдат во речиси секоја програма што некако работи со времето. Со среќа.

Оставете Одговор