Converter String para Datetime em Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com dados, você pode frequentemente se deparar com datas e horas representadas como strings. Converter uma string para objetos datetime em Python é uma tarefa comum, pois permite que você realize operações como comparações, cálculos e formatação de maneira mais fácil. Neste artigo, vamos explorar como converter strings como “Jan 1 2023 4:23PM” em objetos datetime.

Usando datetime.strptime para Analisar Strings

O módulo datetime em Python fornece um método chamado strptime, que significa “analisar string para tempo”. Esse método permite converter uma string em um objeto datetime. Veja como você pode usá-lo:

from datetime import datetime

# Converter uma string em um objeto datetime
objeto_datetime = datetime.strptime('Jan 1 2023 4:23PM', '%b %d %Y %I:%M%p')
print(objeto_datetime)  # Saída: datetime.datetime(2023, 1, 1, 16, 23)
Testar

No exemplo acima, %b %d %Y %I:%M%p é a string de formato que indica ao strptime como interpretar a string de entrada. Cada diretiva corresponde a um componente específico da data e hora. Por exemplo, %b é o nome abreviado do mês, %d é o dia do mês e %Y é o ano com quatro dígitos.

Se você precisar apenas da parte da data do objeto datetime, pode convertê-la usando o método .date():

from datetime import datetime
# Converter um objeto datetime em um objeto date
objeto_date = datetime.strptime('Jan 1 2023', '%b %d %Y').date()
print(objeto_date)  # Saída: date(2023, 1, 1)
Testar

Usando dateutil.parser para Análise Flexível

Se você está lidando com uma variedade de formatos de data e deseja uma solução mais flexível, o módulo parser da biblioteca dateutil pode ser muito útil. Ele pode analisar a maioria dos formatos de data sem a necessidade de uma string de formato:

from dateutil import parser

# Analisar uma string em um objeto datetime sem especificar um formato
objeto_datetime = parser.parse("Jan 1 2023 4:23PM")
print(objeto_datetime)  # Saída: datetime.datetime(2023, 1, 1, 0, 0)
Testar

Para usar o dateutil.parser, você precisa instalar a biblioteca primeiro:

pip install python-dateutil

Usando time.strptime para Objetos de Tempo

Outro módulo que você pode usar é o módulo time, que fornece uma função strptime semelhante à do módulo datetime. Ele retorna um objeto struct_time que pode ser convertido em um objeto datetime ou date:

import time
from datetime import datetime, date

# Analisar uma string em um objeto struct_time
struct_time = time.strptime('Jan 1 2023 4:23PM', '%b %d %Y %I:%M%p')

# Converter struct_time em um timestamp
timestamp = time.mktime(struct_time)

# Converter timestamp em um objeto datetime
objeto_datetime = datetime.fromtimestamp(timestamp)
print(objeto_datetime)  # Saída: datetime.datetime(2023, 1, 1, 16, 23)

# Converter timestamp em um objeto date
objeto_date = date.fromtimestamp(timestamp)
print(objeto_date)  # Saída: date(2023, 1, 1)
Testar

Resumo

Neste artigo, cobrimos três métodos para converter uma string em objetos datetime em Python. Usamos o método datetime.strptime para análise precisa de formato, o dateutil.parser para análise flexível sem especificar um formato e o método time.strptime para trabalhar com objetos struct_time. Cada método tem seus próprios casos de uso, e escolher o certo depende dos requisitos específicos da sua tarefa. Lembre-se, trabalhar com objetos datetime facilita o manuseio de dados de data e hora em suas aplicações Python.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial