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 ()








