Modulu di tempu in Python 3. Principali metudi, mudelli, esempi

Quasi ogni prugramma usa u tempu. In Python, una biblioteca separata hè stata sviluppata per questu - tempuusatu per fà una varietà di azzioni cun ellu. Per fà u travagliu, prima deve esse dichjaratu à u principiu di u codice. Questa linea hè aduprata per questu:

tempu d'impurtazione

Cunsideremu diverse opzioni nantu à cumu utilizà stu modulu currettamente in a pratica. 

Determinà u numeru di seconde da l'epica

Per fà stu compitu, ci hè una funzione tempu() chì ùn piglia micca parametri. U so valore di ritornu hè quantu sicondi sò passati da u 1 di ghjennaghju di u 1970. In Python, questu tempu hè chjamatu u principiu di l'epica. Almenu in i sistemi operativi di a famiglia Unix.

In quantu à Windows, a data hè a stessa, ma pò esse prublemi cù i valori negativi chì eranu prima di sta data. 

U fusu orariu utilizatu hè UTC.

tempu d'impurtazione

seconde = tempu.tempu ()

print("Secondi da l'epica =", seconde)

A cumplessità di sta funzione hè chì ùn mostra micca esattamente a data, ma solu u numeru di seconde. Per cunvertisce à u formatu familiar à tutti, avete bisognu di utilizà infurmazione precisa. Per questu, a funzione hè aduprata tempu.ctime().

Riturnà a data, l'ora in u formatu di solitu

Per rinvià u tempu in u formatu di solitu, ci hè un metudu tempu.ctime(). I parentesi indicanu una variabile o un numeru chì indica u numeru di sicondi chì sò passati da u principiu di l'epica. Stu metudu torna tutte e caratteristiche di data è ora, cumprese a data, l'annu, u numeru di ore, minuti, seconde è ghjornu di a settimana.

Sta funzione pò ancu esse usata senza argumenti. In questu casu, torna a data attuale, l'ora, è cusì.

Eccu un snippet di codice chì mostra questu.

tempu d'impurtazione

print(time.ctime())

Mar Ottobre 23 10:18:23 2018

L'ultima linea hè quella chì hè stampata à a cunsola induve l'interprete Python hè in esecuzione. U metudu formate automaticamente u numeru ricevutu di seconde in una forma familiarizata da l'utilizatori. True, tutti l'elementi descritti sopra sò raramente usati. Comu regula, avete bisognu di ottene solu l'ora, o solu a data d'oghje. Per questu, una funzione separata hè aduprata - strftime(). Ma prima di cunsiderà, avemu bisognu di analizà a classa tempu.struttura_tempu.

class time.struct_time

Questa hè una categuria di argumenti chì ponu esse accettati da una varietà di metudi. Ùn hà micca opzioni. Hè una tupla cù una interfaccia chjamata. Simply put, l'elementi di sta classa ponu accede sia per nome sia per numeru indice.

Hè custituitu da i seguenti attributi.Modulu di tempu in Python 3. Principali metudi, mudelli, esempi

Attenzione ! A cuntrariu di parechje altre lingue di prugrammazione, quì u mese pò varià da 1 à 12, è micca da zero à 11.

Riturnà un Formatu Specificu

Utilizà a funzione strftime () pudete uttene l'annu, u mese, u ghjornu, l'ora, i minuti, i sicondi individualmente è rinvià à una stringa di testu. Allora pò esse stampatu à l'utilizatore cù a funzione stampa () o altrimenti trattatu.

Comu argumentu, una funzione pò piglià qualsiasi variabile chì piglia un valore restituitu da altre funzioni di stu modulu. Per esempiu, pudete trasfiriri l'ora lucale à questu (sarà discutitu più tardi), da quale tirà i dati necessarii.

Eccu u snippet di codice induve u facemu.

tempu d'impurtazione

named_tuple = time.localtime () # ottene struct_time

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

print(time_string)

Se eseguite stu codice, a data è l'ora attuale seranu visualizate. U formatu è a sequenza di elementi pò esse cambiatu. Sò i seguenti:

  1. %Y hè l'annu.
  2. %m hè u mese.
  3. %d - ghjornu.
  4. %H - tempu.
  5. %M - minuti.
  6. %S - seconda.

In cunsiquenza, pudete fà cusì chì a pruduzzioni hè solu di u mese è di u ghjornu. Per fà questu, ùn avete micca bisognu di dà un cumandamentu per vede l'annu. Questu hè, scrivite in a formula sopra cum'è un argumentu %m/%d, è questu hè. O viceversa, %d/%m. 

In fatti, u numeru di litterali di stringa hè assai più grande. Eccu una tavola induve sò descritte in detail.Modulu di tempu in Python 3. Principali metudi, mudelli, esempi

Postpone un filu per un certu numaru di seconde

Per questu, a funzione hè aduprata dorme (). Un bloccu abbastanza grande di i travaglii di prugrammazione hè assuciatu cù u passaghju di u tempu. Calchì volta vi tocca à posponà u prossimu passu per un certu tempu. Per esempiu, sè avete bisognu di interagisce cù una basa di dati chì piglia un certu tempu per processà.

Cum'è un argumentu, u metudu usa un valore chì esprime u numeru di seconde per ritardà u prossimu passu da l'algoritmu.

Per esempiu, in questu snippet, u ritardu hè di 10 seconde.

tempu d'impurtazione

pausa = 10

print(«U prugramma hà iniziatu…»)

tempu.sonnu (pausa)

print(str (pausa) + » seconde passate.»)

In u risultatu, avemu da ottene questu:

U prugramma hà iniziatu ...

10 seconde passanu.

Comu si pò vede da l 'output, u prugramma primu rapportu ch'ellu hà principiatu. È dopu à deci seconde, hà scrittu chì questu tempu era passatu.

A funzione permette di specificà a durata di a pausa in millisecondi. Per fà questu, usemu i valori fraccionari di l'argumentu di a funzione dorme. Per esempiu, 0,1. Questu significa chì u ritardu serà di 100 millisecondi.

Ottene l'ora locale

Utilizendu a funzione localtime (), u prugramma riceve u numeru di seconde da u principiu di l'epica in un fusu orariu specificu. 

Demu un esempiu di codice per a chiarità.

tempu d'impurtazione

result = time.localtime (1575721830)

print("result:", risultatu)

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

print(«tm_hour:», result.tm_hour)

Ritorna struct_time in UTC basatu annantu à u numeru di seconde da l'epica

Stu compitu hè ottenutu cù u time.gmtime (). metudu. Sarà più chjaru se damu un esempiu.

tempu d'impurtazione

risultatu = time.gmtime (1575721830)

print("result:", risultatu)

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

print(«tm_hour:», result.tm_hour)

Se accende sta sequenza d'azzioni, allora un inseme di elementi ligati à u tempu, l'annu è u fusu orariu serà visualizatu.

Ritorna u numeru di seconde da u principiu di l'epica cù cunversione automatica à l'ora locale

Sè vo site di fronte à un tali compitu, hè implementatu cù u metudu mktime (), chì piglia struct_time. Dopu quì, eseguisce l'azzione inversa di a funzione ora locale (). Vale à dì, cunvertisce u tempu secondu u fusu orariu lucale in u numeru di seconde chì sò passati da u principiu di l'epica, aghjustatu per u fusu orariu.

E funzioni mktime () è localtime () sò strettamente intrecciate. Stu snippet di codice mostra chjaramente questu. Fighjemu un ochju per capisce più profondamente cumu si funziona. 

tempu d'impurtazione

seconde = 1575721830

# torna struct_time

t = time.localtime (secondi)

print(«t1: «, t)

# torna seconde da struct_time

s = tempu.mktime(t)

print(«ns:», seconde)

Avemu vistu chì a variabile seconde hè stata attribuita 1575721830 seconde da l'epica. Prima, u prugramma riceve a data esatta, l'ora è altri parametri, basatu annantu à questu valore, mette in una variàbile t, è poi cunvertisce u so cuntenutu in una variabile s.

Dopu chì batte una nova linea è mostra u numeru di seconde in a cunsola. Pudete cuntrollà chì serà u listessu numeru chì hè statu assignatu à a variàbile seconde.

Data di output da 9 numeri chì si riferiscenu à struct_time

Eppo supponi chì avemu 9 numeri chì rapprisentanu l'annu, u mese, a data, u ghjornu di a settimana è una quantità di altri valori, è avemu bisognu di cumminà in una stringa. Per questu, a funzione hè aduprata asctime (). Ella accetta o pronta struct_time, o qualsiasi altra tupla di 9 valori chì significa u listessu. Dopu questu, una stringa hè tornata, chì hè una data, ora è una quantità di altri parametri. 

Hè assai còmuda d'utilizà stu metudu per portà dati disparati specificati da l'utilizatori in una sola variabile..

Per esempiu, pò esse un prugramma induve l'utilizatore specifica separatamente u ghjornu, u mese, l'annu, u ghjornu di a settimana, è altre dati riguardanti a registrazione per un avvenimentu. Dopu questu, l'infurmazioni ricevuti sò inseriti in a basa di dati è dopu emessi à una altra persona chì a dumanda.

Ottene l'ora è a data basatu nantu à a stringa Python

Eppo supponi chì l'utilizatore hà specificatu dati disparati, è avemu bisognu di cumminà in una linea in u formatu chì a persona hà intrutu, è poi fate una copia à una altra variàbile, è ricustruisce in un formatu standard. Per questu, a funzione hè aduprata tempu.strptime().

Piglia una variàbile in quale stu valore hè specificatu, è torna u digià familiar à noi struct_time.

Per chiarezza, scriveremu un tali prugramma.

tempu d'impurtazione

time_string = «15 ghjugnu, 2019»

result = time.strptime(time_string, «%d %B, %Y»)

stampa (risultatu)

Indovina quale sarà l'output? Pruvate à indovinà senza fighjà u fondu. E poi verificate a risposta.

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)

In una parolla, travaglià cù e date è i tempi in Python ùn hè micca difficiule. Basta à seguità ste struzzioni, è tuttu hà da travaglià. Utilizà a Biblioteca tempu l'utilizatore riceve un gran numaru di opportunità per travaglià cù u tempu, cum'è:

  1. Suspende l'esecuzione di u prugramma per una quantità di tempu specificata.
  2. Mostra u tempu chì hè passatu da l'epica, in seconde. Questa infurmazione pò esse usata per riassume u tempu o per fà altre operazioni matematiche nantu à questu.
  3. Cunvertisce à un furmatu còmuda. Inoltre, u prugrammatore stessu pò stabilisce quale elementi seranu affissati è in quale sequenza. 

Ci hè ancu parechje altre pussibulità, ma oghje avemu analizatu i più basi. Seranu utili in quasi ogni prugramma chì in qualchì modu travaglia cù u tempu. Bona furtuna.

Lascia un Audiolibro