# Python Time: tutto quello che c’è da sapere sull’utilizzo e sulle funzioni del modulo

Python `time` è un modulo che permette di ottenere informazioni relative al tempo in questo linguaggio di programmazione. Il modulo offre numerose funzioni e utilizza l’indicazione temporale Unix e gli oggetti `struct_time`.

## Che cos’è Python `time` e come si utilizza questo modulo?

Il modulo Python `time` è fondamentale per implementare e tenere conto delle informazioni relative al tempo in questo linguaggio di programmazione. Tra le attività che possono essere eseguite da questo modulo vi sono la **visualizzazione dell’ora corrente, la formattazione delle informazioni relative al tempo e l’indicazione di una durata specifica** nel corso dell’esecuzione di una funzione. Per utilizzare il modulo, è necessario prima importare Python `time` con la seguente parola chiave:

```python
import time
```

Successivamente puoi utilizzare diverse funzioni del modulo. Nelle parti seguenti ti mostriamo le più importanti. Se sei alla ricerca di un’alternativa a Python `time`, [Python datetime](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-datetime/) è una buona soluzione.

## `time.time()` e il significato della marca temporale di Unix

Alla base della funzione `time.time()` vi è la marca temporale di Unix. Essa descrive un momento preciso nel passato a partire dal quale viene misurato il tempo in un sistema. Per Windows e molti sistemi Unix questo istante è **il 1º gennaio 1970, alle ore 00:00:00** (tempo coordinato universale). Anche Python si basa su questo momento. In alternativa, il calcolo a partire da questo secondo preciso è detto anche “tempo trascorso dall’epoca”. La funzione `time.time()` fornisce il numero di secondi trascorsi a partire da quell’istante all’inizio degli anni Settanta. Per farlo, puoi utilizzare il seguente codice:

```python
import time
tempo_trascorso = time.time()
print("Secondi trascorsi dall'epoca: ", tempo_trascorso)
```

Nel momento in cui stavamo scrivendo questo testo, abbiamo ricevuto questo risultato:

```python
1716816325
```

## `time.ctime()`: come indicare i dati in modo leggibile

Tuttavia, poiché normalmente non è possibile fare molto con queste informazioni, Python `time` ti offre la possibilità di utilizzare la marca temporale di Unix come **base per l’informazione su una data**. In questo modo puoi trarre vantaggio dalla precisione di questa misurazione del tempo e ottenere la marca temporale in un formato comprensibile. La funzione da usare a tal fine è `time.ctime()`, che converte la marca temporale di Unix direttamente in una data. Il codice da utilizzare è il seguente:

```python
import time
tempo_trascorso = 1716816325
tempo_corrente = time.ctime(tempo_trascorso)
print("La data e l'ora correnti sono: ", tempo_corrente)
```

L’output che otteniamo si presenta così e tiene conto dell’ora locale:

```python
La data e l'ora correnti sono: Mon May 27 2024 15:25:25
```

Consiglio La soluzione ideale per lavorare con il tuo progetto web: con [Deploy Now](https://www.ionos.it/hosting/deploy-now "Deploy Now di IONOS") di IONOS puoi implementare modifiche del codice direttamente con GitHub e trarre vantaggio dall’adattamento in tempo reale. Vieni a scoprire il piano più adatto alle tue esigenze!

## `time.sleep()`: pianificazione dell’esecuzione di un programma

Il modulo Python `time` offre comunque molte più possibilità rispetto alla semplice indicazione della data e dell’ora correnti. Ad esempio, è utilizzato anche per gestire o ritardare l’esecuzione di un programma. La funzione per farlo è `time.sleep()` e la sua sintassi è la seguente:

```python
import time
print("Questo testo viene mostrato subito… ")
time.sleep(5)
print("…e questo invece dopo 5 secondi.")
```

L’output che otteniamo è il seguente:

```python
Questo testo viene mostrato subito…
…e questo invece dopo 5 secondi.
```

La seconda parte viene visualizzata solo dopo un ritardo di cinque secondi. Se desideri conoscere in dettaglio le possibilità di applicazione di [Python time.sleep()](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/sleep-in-python/), leggi i nostri consigli nella Digital Guide.

## Oggetti `struct_time` per Python `time`

Per molte funzioni di Python `time` è fondamentale usare l’**oggetto `struct_time`**. È utilizzato principalmente come parametro o valore restituito e fornisce una tupla il cui valore può essere specificato tramite l’indice o l’attributo. A tal fine è possibile utilizzare i seguenti attributi:

<table>
  <thead>
    <tr>
      <th>Indice</th>
      <th>Attributo</th>
      <th>Descrizione</th>
      <th>Possibili valori</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0</td>
      <td>tm\_year</td>
      <td>Numero dell’anno</td>
      <td>0000, …, 2024, …, 9999</td>
    </tr>
    <tr>
      <td>1</td>
      <td>tm\_mon</td>
      <td>Numero del mese</td>
      <td>1, 2, 3, …, 12</td>
    </tr>
    <tr>
      <td>2</td>
      <td>tm\_mday</td>
      <td>Giorno preciso del mese</td>
      <td>1, 2, 3, 31</td>
    </tr>
    <tr>
      <td>3</td>
      <td>tm\_hour</td>
      <td>Ore</td>
      <td>0, 1, 2, …, 23</td>
    </tr>
    <tr>
      <td>4</td>
      <td>tm\_min</td>
      <td>Minuti</td>
      <td>0, 1, 2, …, 59</td>
    </tr>
    <tr>
      <td>5</td>
      <td>tm\_sec</td>
      <td>Secondi</td>
      <td>0, 1, 2, …, 60, 61</td>
    </tr>
    <tr>
      <td>6</td>
      <td>tm\_wday</td>
      <td>Giorno della settimana</td>
      <td>0 (per lunedì), …, 6 (per domenica)</td>
    </tr>
    <tr>
      <td>7</td>
      <td>tm\_yday</td>
      <td>Giorno dell’anno</td>
      <td>1, 2, 3, …, 366</td>
    </tr>
    <tr>
      <td>8</td>
      <td>tm\_isdst</td>
      <td>Ora legale o solare</td>
      <td>0 (solare), 1 (legale) oppure -1 (non indicato)</td>
    </tr>
  </tbody>
</table>

## `time.localtime()`: unione di `struct_time` e del tempo a partire dall’epoca

La funzione **`time.localtime()`** utilizza un oggetto `struct_time` di questo tipo come base per la marca temporale di Unix. Il codice si presenta così:

```python
import time
dato temporale = time.time()
tempo_corrente = time.localtime(informazione temporale)
print(tempo_corrente)
```

In questo modo ottieni il seguente risultato:

```python
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
```

In alternativa è anche possibile scegliere un valore a piacere per il parametro `localtime()`. In tal caso, il codice si presenta così:

```python
import time
dato temporale = time.time()
tempo_corrente = time.localtime(1716816325)
print(tempo_corrente)
```

Il risultato corrisponde quindi nuovamente all’esempio precedente:

```python
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
```

## `time.mktime()`: l’opposto di `localtime()`

La funzione `time.mktime()` in Python `time` è il contrario di `localtime()`. In questo caso si utilizza un oggetto `struct_time` come parametro ed è il sistema a fornirti la marca temporale adatta per il tempo trascorso dall’epoca. Il codice si presenta così:

```python
import time
tempo = time.mktime(local_time)
print(tempo)
```

Come output otteniamo un valore in secondi con il seguente formato:

```python
1716816325
```

## `time.gmtime()`: tempo coordinato universale per la visualizzazione

`time.gmtime()` è in gran parte equivalente a `time.localtime()`. Tuttavia, in questo caso l’oggetto `struct_time` corrispondente viene restituito sotto forma di tempo coordinato universale. Il codice è:

```python
import time
time_stamp = time.time()
tempo_universale = time.gmtime(time_stamp)
stampa(tempo_universale)
```

Con questa funzione `time` di Python, il risultato differisce per alcuni dettagli dall’esempio precedente:

```python
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=13, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=0)
```

## `time.asctime()`: oggetti `struct_time` in stringhe

È possibile utilizzare `time.asctime()` per convertire un oggetto `struct_time` in una [stringa di Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/stringhe-in-python/). Ad esempio, la stringa potrebbe presentarsi così:

```python
import time
tempo = time.localtime()
dato_leggibile = time.asctime(tempo)
print(dato_leggibile)
```

In questo modo ottieni un risultato più chiaro:

```python
Mon May 27 15:25:25 2024
```

## `time.strftime()`: creazione di una sequenza di caratteri con Python `time`

Sono possibili diverse varianti con `time.strftime()`. A tal fine si utilizzano codici formato diversi per visualizzare il tempo corrente nel formato desiderato. L’elenco seguente ti mostra una visione d’insieme dei diversi codici formato più importanti:

- **%Y**: rappresenta il numero dell’anno nel formato 0001, …, 2024, …, 9999
- **%m**: indica il mese per mezzo dei numeri da 01 (gennaio) a 12 (dicembre)
- **%d**: indica il giorno dal 1º al 31 del mese.
- **%H**: rappresenta l’ora compresa nell’intervallo tra 00 e 23
- **%M**: indica i minuti sotto forma di numeri tra 00 e 59
- **%S**: mostra i secondi da 00 a 61

All’interno del codice si potrebbe scrivere così:

```python
import time
tempo = time.localtime()
dato_leggibile = time.strftime("%d-%m-%Y, %H:%M:%S", tempo)
print(dato_leggibile)
```

In questo caso, il risultato sarebbe:

```python
27-05-2024, 15:25:25
```

## `time.strptime()`: conversione di stringhe in oggetti `struct_time`

Anche per la funzione precedente è disponibile una controparte in Python `time`: `time.strptime()` utilizza una stringa per restituire un oggetto `struct_time`. Il codice per farlo è il seguente:

```python
import time
tempo = time.strptime(dato_leggibile, "%d-%m-%Y, %H: %M:%S")
print(tempo)
```

Otteniamo quindi di nuovo questo risultato:

```python
time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
```

Consiglio Nella nostra Digital Guide troverai molti altri articoli su questo apprezzato linguaggio di programmazione. Ad esempio sono disponibili un [tutorial su Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/tutorial-python/), una guida per l’[installazione di Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/installare-python/) e un vademecum sugli [operatori Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-python/).


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/modulo-python-time/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/modulo-python-time/) for AI/LLM consumption.