# String to datetime en Python : conversion d'une chaîne de caractères en datetime

Les objets datetime permettent d’effectuer facilement des calculs de temps tels que l’ajout ou la soustraction d’intervalles de temps. La **conversion de chaînes de caractères (*string*) en objets datetime** joue un rôle central dans la structuration, l’analyse et l’affichage précis des données temporelles dans la programmation Python.

## Comment fonctionne Python String to datetime ?

Python *String to datetime* est un processus permettant de convertir une chaîne de texte contenant une représentation de la date et/ou de l’heure en un objet *datetime*. Datetime est une structure de données en Python permettant de **représenter et de manipuler des informations de date et d’heure**. La conversion d’une chaîne de caractères en datetime peut s’avérer nécessaire si vous travaillez avec des informations de date et d’heure qui se présentent sous forme de chaînes de caractères.

Les informations sont ainsi converties dans un **format utilisable**, par exemple pour effectuer des calculs, comparer des dates ou formater des données temporelles. Les méthodes String Format en Python de concaténation d’expressions peuvent également vous être utiles lorsque vous travaillez avec des objets datetime.

## Convertir des chaînes de caractères en objets datetime

Python String to datetime comprend plusieurs fonctions et modules, comme la bibliothèque `datetime` et la méthode `strptime()`, pour convertir des chaînes de caractères en objets datetime et vice versa.

### Utilisation de `strptime()`

La méthode `strptime()` (*String Parse Time*) de la bibliothèque `datetime` sert à convertir une chaîne de caractères en un objet du module Python datetime. Elle nécessite **deux arguments** : la chaîne à analyser et le format date/heure de la chaîne.

```python
datetime.strptime(date_string, format)
```

### `datetime.datetime()`

La méthode `strptime()` permet de convertir une chaîne de caractères en un objet `datetime.datetime` en tenant compte d’un format de date/heure spécifique.

```python
from datetime import datetime
date_string = '2023-10-30 12:00:00'
date_objet = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date_objet) # Sortie : 2023-10-30 12:00:00
```

Dans cet exemple, la `date_string` est donnée comme `'2023-10-30 12:00:00'`, et le format `'%Y-%m-%d %H:%M:%S'` définit l’ordre et l’apparence de la date ainsi que de l’heure dans la chaîne. La méthode `strptime()` analyse la chaîne selon ce format et crée un objet `datetime.datetime` qui est ensuite stocké dans la variable `date_object`.

Ici, `'%Y-%m-%d %H:%M:%S'` signifie :

- **`%Y`** : année à quatre chiffres
- **`%m`** : mois à deux chiffres
- **`%d`** : nombre de jours à deux chiffres
- **`%H`** : heure (format 24 heures)
- **`%M`** : minute
- **`%S`** : seconde

### `datetime.time()`

En convertissant des chaînes de caractères en un objet `datetime.time`, il est possible d’afficher **des heures sans date**. Cela peut être réalisé avec la méthode `strptime()` de la classe `datetime` ou en divisant une chaîne de temps en heures, minutes et secondes.

```python
from datetime import datetime
time_string = '14:30:00'
time_object = datetime.strptime(time_string, '%H:%M:%S').time()
print(time_object) # Sortie : 14:30:00
```

`'%H:%M:%S'` représente le format heures:minutes:secondes. La méthode `strptime()` interprète la chaîne de temps selon ce format et crée un objet `datetime.time`.

### `datetime.date()`

Vous pouvez aussi convertir une chaîne de caractères en un objet `datetime.date` en utilisant la méthode `strptime()` de la classe `datetime` ou en divisant manuellement la chaîne de date en année, mois et jour.

```python
from datetime import datetime
date_string = '2023-11-30'
date_object = datetime.strptime(date_string, '%Y-%m-%d').date()
print(date_object) # Sortie : 2023-11-30
```

`'%Y-%m-%d'` est le format année-mois-jour. La méthode `strptime()` analyse la chaîne de date et conçoit un objet `datetime.date`.

## Trouver et résoudre les erreurs `strptime()`

En utilisant la méthode `strptime()` pour Python String to DateTime, vous pouvez rencontrer des erreurs, en particulier si le format donné ne correspond pas au format de la chaîne d’entrée. Voici quelques erreurs courantes et comment les corriger :

- **`ValueError: time data '...' does not match format '...'`** : cette erreur se produit lorsque la chaîne de caractères en entrée ne correspond pas au format spécifié. Assurez-vous que le modèle de format correct a été utilisé dans `strptime()`.
- **`ValueError: unconverted data remains`** : cette erreur est affichée s’il reste des données non interprétées après le traitement de la chaîne. Vérifiez le modèle de format afin que toutes les parties de la chaîne d’entrée soient couvertes par le format.
- **`TypeError: strptime() argument 1 must be str, not ...`** : cela peut arriver si le paramètre passé à `strptime()` n’est pas une chaîne de caractères. Vérifiez que la valeur passée est une chaîne de caractères contenant le format date/heure.

Vous devez vous assurer que le modèle de format interprète correctement toutes les parties de la chaîne d’entrée (année, mois, jour, heure, etc.). Tenez compte des éventuelles différences de séparateurs, de majuscules et d’autres détails entre le modèle de format et la chaîne d’entrée.


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