Python strptime () - string para objeto datetime

Neste artigo, você aprenderá a criar um objeto datetime a partir de uma string (com a ajuda de exemplos).

O strptime()método cria um objeto datetime a partir da string fornecida.

Nota: Você não pode criar datetimeobjeto de cada string. A string precisa estar em um determinado formato.

Exemplo 1: string para objeto datetime

  from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("type of date_string =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("type of date_object =", type(date_object)) 

Quando você executa o programa, a saída será:

 date_string = 21 de junho de 2018 tipo de date_string = date_object = 2018-06-21 00:00:00 tipo de date_object = 

Como funciona o strptime ()?

O strptime()método da classe leva dois argumentos:

  • string (que pode ser convertido em data e hora)
  • código de formato

Com base na string e no código de formato usados, o método retorna seu datetimeobjeto equivalente .

No exemplo acima:

Aqui,

  • %d- Representa o dia do mês. Exemplo: 01, 02, …, 31
  • %B- Nome completo do mês. Exemplo: janeiro, fevereiro etc.
  • %Y- Ano em quatro dígitos. Exemplo: 2018, 2019 etc.

Exemplo 2: string para objeto datetime

  from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2) 

Quando você executa o programa, a saída será:

 dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32 

Lista de códigos de formato

A tabela abaixo mostra todos os códigos de formato que você pode usar.

Diretriz Significado Exemplo
%a Nome abreviado do dia da semana. Sol, Seg, …
%A Nome completo do dia da semana. Domingo segunda-feira,…
%w Dia da semana como um número decimal. 0, 1, …, 6
%d Dia do mês como uma casa decimal com zeros. 01, 02, …, 31
%-d Dia do mês como um número decimal. 1, 2, …, 30
%b Nome abreviado do mês. Janeiro, fevereiro, …, dezembro
%B Nome completo do mês. Janeiro fevereiro,…
%m Mês como um número decimal preenchido com zero. 01, 02, …, 12
%-m Mês como um número decimal. 1, 2, …, 12
%y Ano sem século como um número decimal preenchido com zero. 00, 01, …, 99
%-y Ano sem século como número decimal. 0, 1, …, 99
%Y Ano com século como número decimal. 2013, 2019 etc.
%H Hora (relógio de 24 horas) como um número decimal preenchido com zero. 00, 01, …, 23
%-H Hora (relógio de 24 horas) como um número decimal. 0, 1, …, 23
%I Hora (relógio de 12 horas) como um número decimal preenchido com zero. 01, 02, …, 12
%-I Hora (relógio de 12 horas) como um número decimal. 1, 2, … 12
%p AM ou PM do local. MANHÃ TARDE
%M Minuto como um número decimal preenchido com zero. 00, 01, …, 59
%-M Minuto como um número decimal. 0, 1, …, 59
%S Em segundo lugar, como um número decimal preenchido com zero. 00, 01, …, 59
%-S Em segundo lugar como um número decimal. 0, 1, …, 59
%f Microssegundo como um número decimal, preenchido com zeros à esquerda. 000000 - 999999
%z Deslocamento UTC no formato + HHMM ou -HHMM.
%Z Nome do fuso horário.
%j Dia do ano como um número decimal preenchido com zero. 001, 002, …, 366
%-j Dia do ano como um número decimal. 1, 2, …, 366
%U Número da semana do ano (domingo como primeiro dia da semana). Todos os dias de um ano novo anterior ao primeiro domingo são considerados na semana 0. 00, 01, …, 53
%W Número da semana do ano (segunda-feira como primeiro dia da semana). Todos os dias de um ano novo anterior à primeira segunda-feira são considerados na semana 0. 00, 01, …, 53
%c Representação apropriada de data e hora do local. Seg 30 de setembro 07:06:05 2013
%x Representação de data apropriada do local. 30/09/13
%X Representação de tempo apropriada do local. 07:06:05
%% Um caractere literal '%'. %

ValueError em strptime ()

Se a string (primeiro argumento) e o código de formato (segundo argumento) passado para o strptime()não corresponderem, você obterá ValueError. Por exemplo:

  from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object) 

Se você executar este programa, receberá um erro.

 ValueError: os dados de tempo '12 / 11/2018 'não correspondem ao formato'% d% m% Y ' 

Leituras recomendadas: Python strftime ()

Artigos interessantes...