# Python time : tout ce qu’il faut savoir sur l’utilisation et les fonctions du module

Python `time` est un module qui permet de manipuler des dates dans le langage de programmation. Ce module offre de nombreuses fonctions et utilise le temps Unix et les objets `struct_time`.

## Qu’est-ce que Python `time` et comment utiliser ce module ?

Le module Python `time` joue un rôle crucial dans la gestion des données temporelles en programmation. Ce module permet de réaliser diverses opérations, telles que l’**affichage de l’heure actuelle, le formatage des données temporelles, et le calcul de durées** lors de l’exécution de fonctions. Avant de pouvoir utiliser ces fonctionnalités, il est nécessaire d’importer le module `time` en utilisant le mot-clé suivant :

```python
import time
```

Ensuite, vous pouvez utiliser différentes fonctions avec le module. Nous vous montrons les plus importantes dans les paragraphes suivants. Si vous cherchez une alternative à Python `time`, utilisez [Python `datetime`](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-datetime/).

## `time.time()` et la signification de l’heure Unix

La fonction `time.time()` de Python s’appuie sur le concept du temps Unix, qui marque un instant précis dans le passé utilisé comme point de départ pour mesurer le temps dans un système. Pour Windows et de nombreux systèmes Unix, ce point de départ est le **1er janvier 1970 à 00:00:00 UTC**. Le langage de programmation Python se base également sur ce moment. Ce calcul depuis cette date est communément désigné sous le terme de « temps écoulé depuis l’*epoch* ». La fonction `time.time()` fournit le nombre total de secondes écoulées depuis ce moment initial des années 1970. Pour obtenir cette mesure, vous pouvez utiliser le code suivant :

```python
import time
temps_passé = time.time()
print("Secondes écoulées depuis l’epoch : ", temps_passé)
```

Au moment où nous avons écrit le texte, nous avons reçu ce résultat :

```python
1716816325
```

## `time.ctime()` : indiquer les dates de manière lisible

Étant donné que l’horodatage Unix seul n’est pas très pratique à utiliser, le module Python `time` permet de l’utiliser comme **fondement pour une représentation plus simple de la date**. Cela vous permet de bénéficier de la précision de cette mesure du temps tout en obtenant un format de date plus lisible. La fonction adaptée pour cette conversion est `time.ctime()`, qui transforme directement l’heure Unix en une date. Voici le code correspondant :

```python
import time
temps_passé = 1716816325
temps_actuel = time.ctime(temps_passé)
print("Ceci est l’heure actuelle : ", temps_actuel)
```

Notre sortie ressemble alors à ceci. L’heure locale est prise en compte :

```python
Ceci est l’heure actuelle : Mon May 27 2024 15:25:25
```

Conseil La solution idéale pour travailler sur votre projet Web : avec [Deploy Now](https://www.ionos.fr/hebergement/deploy-now "Deploy Now » Déployez vos projets via GitHub | IONOS") de IONOS, déployez des sites et des applications via GitHub ! Vous profitez ainsi d’une infrastructure fiable à un prix avantageux.

## `time.sleep()` : planifier l’exécution d’un programme

Python `time` peut toutefois faire bien plus que simplement afficher l’heure actuelle. Le module est également utilisé pour contrôler l’exécution d’un programme ou pour la retarder. La fonction correspondante s’appelle `time.sleep()` et se présente ainsi :

```python
import time
print("Ceci s’affiche immédiatement... ")
time.sleep(5)
print("...et ceci après 5 secondes.")
```

La sortie suivante s’affiche alors :

```python
Ceci est affiché immédiatement…
...et ceci après 5 secondes.
```

La deuxième partie n’est affichée qu’après un délai de cinq secondes. Pour savoir à quoi sert [Python `time.sleep()`](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-sleep/) exactement, consultez notre article détaillé dans le Digital Guide.

## Objets `struct_time` pour Python `time`

De nombreuses fonctions du module Python `time` s’appuient sur l’**objet `struct_time`** comme base. Il est généralement utilisé comme paramètre ou valeur de retour et donne un tuple dont la valeur peut être indiquée par l’index ou l’attribut. Les attributs suivants entrent en ligne de compte :

<table>
  <thead>
    <tr>
      <th>Index</th>
      <th>Attribut</th>
      <th>Description</th>
      <th>Valeurs possibles</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0</td>
      <td>tm\_year</td>
      <td>Année</td>
      <td>0000, …, 2024, …, 9999</td>
    </tr>
    <tr>
      <td>1</td>
      <td>tm\_mon</td>
      <td>Indication du mois</td>
      <td>1, 2, 3, …, 12</td>
    </tr>
    <tr>
      <td>2</td>
      <td>tm\_mday</td>
      <td>Jour du mois</td>
      <td>1, 2, 3, 31</td>
    </tr>
    <tr>
      <td>3</td>
      <td>tm\_hour</td>
      <td>Heure en heures</td>
      <td>0, 1, 2, …, 23</td>
    </tr>
    <tr>
      <td>4</td>
      <td>tm\_min</td>
      <td>Heure en minutes</td>
      <td>0, 1, 2, …, 59</td>
    </tr>
    <tr>
      <td>5</td>
      <td>tm\_sec</td>
      <td>Heure en secondes</td>
      <td>0, 1, 2, …, 60, 61</td>
    </tr>
    <tr>
      <td>6</td>
      <td>tm\_wday</td>
      <td>Jour de la semaine</td>
      <td>0 (pour lundi), …, 6 (pour dimanche)</td>
    </tr>
    <tr>
      <td>7</td>
      <td>tm\_yday</td>
      <td>Jour dans une année</td>
      <td>1, 2, 3, …, 366</td>
    </tr>
    <tr>
      <td>8</td>
      <td>tm\_isdst</td>
      <td>Heure d’été ou d’hiver</td>
      <td>0 (hiver), 1 (été) ou -1 (pas d’indication)</td>
    </tr>
  </tbody>
</table>

## `time.localtime()` : lien entre `struct_time` et le temps depuis l’epoch

La fonction **`time.localtime()`** utilise un objet `struct_time` basé sur l’heure Unix. Cela ressemble à ceci dans le code :

```python
import time
indication_de_temps = time.time()
heure_actuelle = time.localtime(indication_de_temps)
print(heure_actuelle)
```

La sortie est la suivante :

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

Il est également possible de choisir n’importe quelle valeur pour le paramètre `localtime()`. Le code se présente alors comme suit :

```python
import time
indication_de_temps = time.time()
heure_actuelle = time.localtime(1716816325)
print(heure_actuelle)
```

La sortie correspond à nouveau à l’exemple ci-dessus :

```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’équivalent de `localtime()`

La fonction `time.mktime()` dans le module Python `time` agit en effet comme la fonction inverse de `localtime()`. Vous fournissez un objet `struct_time` en paramètre, et la fonction renvoie le timbre horaire correspondant au nombre de secondes écoulées depuis l’epoch. Voici comment utiliser le code :

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

En sortie, vous obtenez une valeur en secondes dans ce format :

```python
1716816325
```

## `time.gmtime()` : temps universel coordonné pour l’affichage

`time.gmtime()` correspond en grande partie à `time.localtime()`. L’objet `struct_time` est toutefois renvoyé ici en temps universel coordonné. Voici le code :

```python
import time
time_stamp = time.time()
heure_universelle = time.gmtime(time_stamp)
print(heure_universelle)
```

Votre sortie avec cette fonction de Python `time` diffère donc de l’exemple ci-dessus à quelques détails près :

```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()` : objets `struct_time` dans des chaînes de caractères

Vous pouvez utiliser `time.asctime()` pour convertir un objet `struct_time` en une [chaîne Python](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-string/) (*string*). Cela pourrait par exemple ressembler à :

```python
import time
heure = time.localtime()
indication_de_lecture = time.asctime(heure)
print(indication_de_lecture)
```

Vous obtenez ainsi directement la sortie :

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

## `time.strftime()` : créer une chaîne de caractères avec Python `time`

Différentes variations sont possibles avec `time.strftime()`. Vous utilisez ici différents codes de format pour représenter l’heure actuelle dans le format souhaité. Pour vous donner un aperçu des différents codes de format, nous vous présentons ici quelques-uns des plus importants :

- **%Y** : représente l’année au format 0001, …, 2024, …, 9999
- **%m** : représente le mois et utilise les chiffres de 01 (janvier) à 12 (décembre)
- **%d** : représente le jour du 01 du mois jusqu’au 31
- **%H** : représente l’heure dans le spectre de 00 à 23
- **%M** : représente les minutes et est représenté de 00 à 59
- **%S** : représente la seconde de 00 à 61

Dans le code, cela pourrait par exemple ressembler à ceci :

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

Dans ce cas, la sortie serait la suivante :

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

## `time.strptime()` : convertir des chaînes de caractères en objets `struct_time`

Il y a aussi une alternative à cela en Python `time` : `time.strptime()` utilise une chaîne de caractères pour sortir un objet `struct_time`. Voici le code correspondant :

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

Nous obtenons alors à nouveau cette sortie :

```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)
```

Conseil Dans notre Digital Guide, nous proposons de nombreux autres articles sur ce langage de programmation très apprécié. Vous trouverez entre autres un [tutoriel Python](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/tutoriel-python/), un guide d’[installation de Python](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/installer-python/) et un article sur les [opérateurs Python](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/operateurs-python/).


This is a markdown version of: [https://www.ionos.fr/digitalguide/sites-internet/developpement-web/module-python-time/](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/module-python-time/) for AI/LLM consumption.