# Como converter Python string em datetime

Objetos datetime possibilitam a realização de cálculos de tempo simples, como adicionar ou subtrair intervalos. A **conversão de strings em objetos datetime** é essencial para organizar, analisar e exibir dados de tempo com precisão na linguagem de programação Python.

## Como converter Python string em datetime?

A conversão de uma Python string em datetime envolve a transformação de uma string de texto, que inclui uma data e/ou hora, em um objeto datetime. Esse é o nome dado a uma estrutura de dados em Python criada para manipular e ajustar **informações de data e hora**. A conversão de strings em datetime costuma ser necessária para manipular dados de data e hora que são exibidos em formato string.

Os dados são convertidos em um **formato que pode ser usado** para realizar cálculos, comparar datas ou formatar informações de hora, entre outras possibilidades. Métodos para concatenar expressões usando a [formatação de string em Python](https://www.ionos.com/digitalguide/websites/web-development/python-string-format/ "Como formatar string em Python") também podem ser úteis no gerenciamento de objetos datetime.

## Métodos para converter Python string em datetime?

Existem diversas funções e módulos, como a biblioteca `datetime` e o método `strptime()`, que podem ser usadas para converter strings em objetos datetime e vice-versa.

### `strptime()`

O método `strptime()` (*string parse time*) da biblioteca `datetime` é usado para converter uma string em um objeto [datetime em Python](https://www.ionos.com/digitalguide/websites/web-development/python-datetime/ "Como usar datetime no Python"). **Dois argumentos** são necessários: a string analisada e o formato de data/hora da string.

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

### `datetime.datetime()`

Com o método `strptime()`, uma string pode ser convertida em um objeto `datetime.datetime`, seguindo um formato específico de data/hora.

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

Neste exemplo, `date_string` é especificado como `'2023-10-30 12:00:00'`, e o formato `'%Y-%m-%d %H:%M:%S'` define a ordem e a forma como a data e a hora devem aparecer na string. O método `strptime()` interpreta a string baseada nesse formato e gera um objeto `datetime.datetime` que, em seguida, é armazenado na variável `date_object`.

Entenda o que significa `'%Y-%m-%d %H:%M:%S'`:

- **`%Y`**: Ano em quatro dígitos
- **`%m`**: Mês em dois dígitos
- **`%d`**: Dia em dois dígitos
- **`%H`**: Hora (formato de 24 horas)
- **`%M`**: Minutos
- **`%S`**: Segundos

### `datetime.time()`

Ao converter strings em um objeto `datetime.time`, você consegue representar **a hora sem uma data**. Isso pode ser feito usando o método `strptime()` da classe `datetime` ou dividindo uma string de tempo em horas, minutos e segundos.

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

`'%H:%M:%S'` representa o formato “horas:minutos:segundos”. O método `strptime()` interpreta a string de tempo de acordo com esse formato e cria um objeto `datetime.time`.

### `datetime.date()`

Também é possível transformar uma string em um objeto `datetime.date` usando o método `strptime()` da classe `datetime` ou dividindo, manualmente, a string de data em componentes de ano, mês e dia.

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

`'%Y-%m-%d'` é o formato “ano-mês-dia”. O método `strptime()` analisa a string de data e cria um objeto `datetime.date`.

## Como solucionar erros com `strptime()`

Ao usar o método `strptime()` para converter objetos datetime no Python, você pode se deparar com erros, especialmente se o formato especificado não corresponder ao formato da string de entrada. Estes são alguns erros comuns e suas respectivas soluções:

- **`ValueError: time data '...' does not match format '...'`**: Este erro ocorre se a string de entrada não corresponder ao formato especificado. Certifique-se de que o padrão correto do formato seja usado em `strptime()`.
- **`ValueError: unconverted data remains`**: Este erro é exibido se os dados não interpretados continuarem aparecendo após o processamento da string. Assegure-se de que o padrão do formato aborde todas as seções da string de entrada.
- **`TypeError: strptime() argument 1 must be str, not ...`**: Este erro pode ocorrer se o parâmetro passado a `strptime()` não for uma string. Certifique-se de que o valor informado seja uma string que inclui o formato data/hora.

Assegure-se de que o padrão do formato interprete corretamente todas as partes da string de entrada (ano, mês, dia, hora etc.). Também é importante considerar todas as possíveis diferenças de separadores, letras maiúsculas e minúsculas e outros detalhes entre o padrão do formato e a string de entrada.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/converter-python-string-em-datetime/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/converter-python-string-em-datetime/) for AI/LLM consumption.