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)
TestarNo 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)
TestarUsando 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)
TestarPara 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)
TestarResumo
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.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários