Objetos datetime pos­si­bi­li­tam a re­a­li­za­ção de cálculos de tempo simples, como adicionar ou subtrair in­ter­va­los. A conversão de strings em objetos datetime é essencial para organizar, analisar e exibir dados de tempo com precisão na linguagem de pro­gra­ma­ção Python.

Como converter Python string em datetime?

A conversão de uma Python string em datetime envolve a trans­for­ma­çã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 in­for­ma­ções de data e hora. A conversão de strings em datetime costuma ser ne­ces­sá­ria para manipular dados de data e hora que são exibidos em formato string.

Os dados são con­ver­ti­dos em um formato que pode ser usado para realizar cálculos, comparar datas ou formatar in­for­ma­ções de hora, entre outras pos­si­bi­li­da­des. Métodos para con­ca­te­nar ex­pres­sões usando a for­ma­ta­ção de string em Python também podem ser úteis no ge­ren­ci­a­mento de objetos datetime.

Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana

Métodos para converter Python string em datetime?

Existem diversas funções e módulos, como a bi­bli­o­teca 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 bi­bli­o­teca datetime é usado para converter uma string em um objeto datetime em Python. Dois ar­gu­men­tos são ne­ces­sá­rios: a string analisada e o formato de data/hora da string.

datetime.strptime(date_string, format)
python

datetime.datetime()

Com o método strptime(), uma string pode ser con­ver­tida em um objeto datetime.datetime, seguindo um formato es­pe­cí­fico de data/hora.

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
python

Neste exemplo, date_string é es­pe­ci­fi­cado 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() in­ter­preta a string baseada nesse formato e gera um objeto datetime.datetime que, em seguida, é ar­ma­ze­nado 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 re­pre­sen­tar 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.

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
python

'%H:%M:%S' re­pre­senta o formato “horas:minutos:segundos”. O método strptime() in­ter­preta a string de tempo de acordo com esse formato e cria um objeto datetime.time.

datetime.date()

Também é possível trans­for­mar uma string em um objeto datetime.date usando o método strptime() da classe datetime ou dividindo, ma­nu­al­mente, a string de data em com­po­nen­tes de ano, mês e dia.

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
python

'%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 so­lu­ci­o­nar erros com strptime()

Ao usar o método strptime() para converter objetos datetime no Python, você pode se deparar com erros, es­pe­ci­al­mente se o formato es­pe­ci­fi­cado não cor­res­pon­der ao formato da string de entrada. Estes são alguns erros comuns e suas res­pec­ti­vas soluções:

  • ValueError: time data '...' does not match format '...': Este erro ocorre se a string de entrada não cor­res­pon­der ao formato es­pe­ci­fi­cado. Cer­ti­fi­que-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 in­ter­pre­ta­dos con­ti­nu­a­rem apa­re­cendo após o pro­ces­sa­mento 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. Cer­ti­fi­que-se de que o valor informado seja uma string que inclui o formato data/hora.

Assegure-se de que o padrão do formato in­ter­prete cor­re­ta­mente todas as partes da string de entrada (ano, mês, dia, hora etc.). Também é im­por­tante con­si­de­rar todas as possíveis di­fe­ren­ças de se­pa­ra­do­res, letras maiús­cu­las e mi­nús­cu­las e outros detalhes entre o padrão do formato e a string de entrada.

Ir para o menu principal