Python strptime()
Python strptime()
Neste artigo, você aprenderá a criar um objeto datetime a partir de uma string (com a ajuda de exemplos).
Vídeo:datas e horas em Python
O
strptime()
O método cria um objeto de data e hora a partir da string fornecida. Observação: Você não pode criar
datetime
objeto 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))
Ao executar o programa, a saída será:
date_string = 21 June, 2018 type of date_string = <class 'str'> date_object = 2018-06-21 00:00:00 type of date_object = <class 'datetime.datetime'>
Como strptime() funciona?
O
strptime()
O método class recebe dois argumentos:- string (que será convertida em datetime)
- código de formato
Com base na string e no código de formato usado, o método retorna seu equivalente
datetime
objeto. No exemplo acima:
Aqui,
%d
- Representa o dia do mês. Exemplo: 01, 02, ..., 31%B
- Nome do mês completo. 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)
Ao executar o programa, a saída será:
dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32
Formatar lista de códigos
A tabela abaixo mostra todos os códigos de formato que você pode usar.
Diretiva | Significado | Exemplo |
%a | Nome abreviado do dia da semana. | Dom, 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 um decimal preenchido com zeros. | 01, 02, ..., 31 |
%-d | Dia do mês como número decimal. | 1, 2, ..., 30 |
%b | Nome do mês abreviado. | Janeiro, fevereiro, ..., dezembro |
%B | Nome completo do mês. | Janeiro, fevereiro, ... |
%m | Mês como um número decimal preenchido com zeros. | 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 zeros. | 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 zeros. | 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 zeros. | 01, 02, ..., 12 |
%-I | Hora (relógio de 12 horas) como um número decimal. | 1, 2, ... 12 |
%p | AM ou PM da localidade. | AM, PM |
%M | Minuto como um número decimal preenchido com zeros. | 00, 01, ..., 59 |
%-M | Minuto como um número decimal. | 0, 1, ..., 59 |
%S | Segundo como um número decimal preenchido com zeros. | 00, 01, ..., 59 |
%-S | Segundo 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 zeros. | 001, 002, ..., 366 |
%-j | Dia do ano como número decimal. | 1, 2, ..., 366 |
%U | Número da semana do ano (domingo como o primeiro dia da semana). Todos os dias de um novo ano que antecedem o primeiro domingo são considerados na semana 0. | 00, 01, ..., 53 |
%W | Número da semana do ano (segunda-feira como o primeiro dia da semana). Todos os dias de um novo ano que antecedem a primeira segunda-feira são considerados na semana 0. | 00, 01, ..., 53 |
%c | A representação de data e hora apropriada da localidade. | Seg 30 de setembro 07:06:05 2013 |
%x | Representação de data apropriada da localidade. | 30/09/13 |
%X | Representação de hora apropriada da localidade. | 07:06:05 |
%% | Um caractere '%' literal. | % |
ValueError em strptime()
Se a string (primeiro argumento) e o código de formato (segundo argumento) forem passados para o
strptime()
não corresponder, você receberá 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: time data '12/11/2018' does not match format '%d %m %Y'
Leituras recomendadas: Python strftime()
python