Modulo Time in Python 3. Metodi principali, modelli, esempi

Quasi tutti i programmi utilizzano il tempo. In Python è stata sviluppata una libreria separata per questo: tempoutilizzato per eseguire una varietà di azioni con esso. Per farlo funzionare, deve prima essere dichiarato all'inizio del codice. Questa riga è usata per questo:

tempo di importazione

Consideriamo diverse opzioni su come utilizzare correttamente questo modulo nella pratica. 

Determinazione del numero di secondi dall'epoca

Per svolgere questo compito, c'è una funzione tempo() che non accetta parametri. Il suo valore restituito è quanti secondi sono trascorsi dal 1 gennaio 1970. In Python, questa volta è chiamata l'inizio di un'epoca. Almeno nei sistemi operativi della famiglia Unix.

Per quanto riguarda Windows, la data è la stessa, ma potrebbero esserci problemi con valori negativi precedenti a questa data. 

Il fuso orario utilizzato è UTC.

tempo di importazione

secondi = tempo.tempo()

print(“Secondi dall'epoca =”, secondi)

La complessità di questa funzione è che non mostra esattamente la data, ma solo il numero di secondi. Per convertire nel formato familiare a tutti, è necessario utilizzare informazioni accurate. Per questo, viene utilizzata la funzione tempo.ctempo().

Restituendo la data, l'ora nel formato consueto

Per restituire l'ora nel formato usuale, esiste un metodo tempo.ctempo(). Le parentesi indicano una variabile o un numero che indica il numero di secondi trascorsi dall'inizio dell'epoca. Questo metodo restituisce tutte le caratteristiche di data e ora, inclusi data, anno, numero di ore, minuti, secondi e giorno della settimana.

Questa funzione può essere utilizzata anche senza argomenti. In questo caso, restituisce la data, l'ora e così via correnti.

Ecco un frammento di codice che lo dimostra.

tempo di importazione

print(tempo.ctempo())

mar 23 ottobre 10:18:23 2018

L'ultima riga è ciò che viene stampato sulla console in cui è in esecuzione l'interprete Python. Il metodo formatta automaticamente il numero di secondi ricevuto in una forma familiare all'utente. È vero, tutti gli elementi sopra descritti sono usati raramente. Di norma, devi ottenere solo l'ora o solo la data odierna. Per questo, viene utilizzata una funzione separata: strftime(). Ma prima di considerarlo, dobbiamo analizzare la classe tempo.struttura_tempo.

classe time.struct_time

Questa è una categoria di argomenti che possono essere accettati da una serie di metodi. Non ha alcuna opzione. È una tupla con un'interfaccia denominata. In poche parole, è possibile accedere agli elementi di questa classe sia per nome che per numero di indice.

È costituito dai seguenti attributi.Modulo Time in Python 3. Metodi principali, modelli, esempi

Attenzione! A differenza di molti altri linguaggi di programmazione, qui il mese può variare da 1 a 12 e non da zero a 11.

Restituzione di un formato specifico

Utilizzando la funzione strftime() puoi ottenere l'anno, il mese, il giorno, l'ora, i minuti, i secondi individualmente e restituirli a una stringa di testo. Quindi può essere stampato all'utente utilizzando la funzione stampa () o altrimenti elaborato.

Come argomento, una funzione può prendere qualsiasi variabile che accetta un valore restituito da altre funzioni di questo modulo. Ad esempio, puoi trasferirvi l'ora locale (sarà discussa in seguito), da cui estrarrà i dati necessari.

Ecco il frammento di codice dove lo facciamo.

tempo di importazione

named_tuple = time.localtime() # ottiene struct_time

stringa_ora = ora.strfora(«%m/%d/%Y, %H:%M:%S», denominata_tuple)

stampa(stringa_tempo)

Se si esegue questo codice, verranno visualizzate la data e l'ora correnti. È possibile modificare il formato e la sequenza degli elementi. Sono i seguenti:

  1. %Y è l'anno.
  2. %m è il mese.
  3. %g – giorno.
  4. %H – ora.
  5. %M – minuti.
  6. %S – secondo.

Di conseguenza, puoi fare in modo che l'output sia esclusivamente del mese e del giorno. Per fare ciò, semplicemente non è necessario dare un comando per visualizzare l'anno. Cioè, scrivi nella formula sopra come argomento %m/%d, e il gioco è fatto. O viceversa, %d/%m. 

In effetti, il numero di letterali stringa è molto maggiore. Ecco una tabella dove sono descritti in dettaglio.Modulo Time in Python 3. Metodi principali, modelli, esempi

Rimanda un thread per un certo numero di secondi

Per questo, viene utilizzata la funzione dormire (). Un blocco abbastanza grande di attività di programmazione è associato al passare del tempo. A volte devi rimandare il passaggio successivo per un certo tempo. Ad esempio, se è necessario interagire con un database che richiede una certa quantità di tempo per l'elaborazione.

Come argomento, il metodo utilizza un valore che esprime il numero di secondi per ritardare il passaggio successivo dall'algoritmo.

Ad esempio, in questo frammento di codice, il ritardo è di 10 secondi.

tempo di importazione

pausa = 10

print(«Programma avviato...»)

time.sleep(pausa)

print(str(pausa) + » secondi trascorsi.»)

Di conseguenza, otterremo questo:

Programma iniziato...

Passarono 10 secondi.

Come possiamo vedere dall'output, il programma segnala innanzitutto che è stato avviato. E dopo dieci secondi, scrisse che questo tempo era passato.

La funzione consente di specificare la durata della pausa in millisecondi. Per fare ciò, utilizziamo i valori frazionari dell'argomento della funzione dormire. Ad esempio, 0,1. Ciò significa che il ritardo sarà di 100 millisecondi.

Ottieni l'ora locale

Usando la funzione localtime(), il programma ottiene il numero di secondi dall'inizio dell'epoca in un fuso orario specifico. 

Diamo un codice di esempio per chiarezza.

tempo di importazione

risultato = time.localtime(1575721830)

print(“risultato:”, risultato)

print(«nгод:», risultato.tm_anno)

print(«tm_hour:», risultato.tm_hour)

Restituisce struct_time in UTC in base al numero di secondi trascorsi da epoch

Questa attività viene eseguita utilizzando time.gmtime(). metodo. Sarà più chiaro se facciamo un esempio.

tempo di importazione

risultato = time.gmtime(1575721830)

print(“risultato:”, risultato)

print(«nгод:», risultato.tm_anno)

print(«tm_hour:», risultato.tm_hour)

Se attivi questa sequenza di azioni, verrà visualizzato un insieme di elementi relativi a ora, anno e fuso orario.

Restituisce il numero di secondi dall'inizio dell'epoca con conversione automatica all'ora locale

Se ti trovi di fronte a un'attività del genere, viene implementata utilizzando il metodo mktime(), che prende struct_time. Successivamente, esegue l'azione inversa della funzione ora locale(). Cioè, converte l'ora in base al fuso orario locale nel numero di secondi trascorsi dall'inizio dell'epoca, adattato per il fuso orario.

Le funzioni mktime() e localtime() sono strettamente intrecciate. Questo frammento di codice lo dimostra chiaramente. Diamo un'occhiata per capire più a fondo come funziona. 

tempo di importazione

secondi = 1575721830

# restituisce ora_struttura

t = time.localtime(secondi)

stampa(«t1: «, t)

# restituisce i secondi da struct_time

s = tempo.mktime(t)

print(«ns:», secondi)

Vediamo che la variabile secondo è stato assegnato 1575721830 secondi dall'epoca. Innanzitutto, il programma ottiene la data esatta, l'ora e altri parametri, in base a questo valore, inserendolo in una variabile t, quindi ne converte il contenuto in una variabile s.

Dopodiché batte una nuova linea e visualizza il numero di secondi nella console. Puoi verificare che sarà lo stesso numero assegnato alla variabile secondi.

Data di output da 9 numeri che fanno riferimento a struct_time

Supponiamo di avere 9 numeri che rappresentano l'anno, il mese, la data, il giorno della settimana e un numero di altri valori, e dobbiamo combinarli in una stringa. Per questo, viene utilizzata la funzione tempo di asc(). Lei accetta o è pronta struttura_time, o qualsiasi altra tupla di 9 valori che sta per lo stesso. Successivamente, viene restituita una stringa, che è una data, un'ora e una serie di altri parametri. 

È molto conveniente utilizzare questo metodo per riunire dati disparati specificati dall'utente in un'unica variabile..

Ad esempio, può essere un programma in cui l'utente specifica separatamente il giorno, il mese, l'anno, il giorno della settimana e altri dati relativi alla registrazione per un evento. Successivamente, le informazioni ricevute vengono inserite nel database e quindi rilasciate a un'altra persona che ne fa richiesta.

Ottenere ora e data in base alla stringa Python

Supponiamo che l'utente abbia specificato dati disparati e dobbiamo combinarli in una riga nel formato immesso dalla persona, quindi fare una copia in un'altra variabile e ricostruirla in un formato standard lì. Per questo, viene utilizzata la funzione tempo.strptime().

Prende una variabile in cui è specificato questo valore e ci restituisce il già familiare struct_time.

Per chiarezza, scriveremo un programma del genere.

tempo di importazione

time_string = «15 giugno 2019»

risultato = time.strptime(stringa_tempo, «%d %B, %Y»)

stampa (risultato)

Indovina quale sarà l'output? Prova a indovinare senza guardare la linea di fondo. E poi controlla la risposta.

time.struct_time(tm_anno=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 parola, lavorare con date e orari in Python non è affatto difficile. Basta seguire queste istruzioni e tutto funzionerà. Usando la Libreria tempo l'utente ottiene un numero enorme di opportunità per lavorare con il tempo, come ad esempio:

  1. Sospendere l'esecuzione del programma per un periodo di tempo specificato.
  2. Mostra il tempo trascorso dall'epoca, in secondi. Queste informazioni possono essere utilizzate per sommare il tempo o eseguire altre operazioni matematiche su di esso.
  3. Converti in un formato conveniente. Inoltre, il programmatore stesso può impostare quali elementi verranno visualizzati e in quale sequenza. 

Ci sono anche una serie di altre possibilità, ma oggi abbiamo analizzato le più basilari. Torneranno utili in quasi tutti i programmi che in qualche modo funzionano con il tempo. Buona fortuna.

Lascia un Commento