Como converter string para data em Python
Este tutorial introduz como converter string
para datetime
em Python e também lista alguns exemplos de códigos para cobrir formatos populares de datetime
string
.
datetime.strptime()
para converter string para datetime
No tutorial anterior, aprendemos como obter a data/hora em formato de string utilizando o método datetime.strftime()
. Vamos utilizar o método datetime.strptime()
para fazer a conversão reversa para obter o objeto datetime
. f
e p
nesses dois métodos significam format
e parse
respectivamente.
O método datetime.strptime()
analisa a string de entrada com o formato datetime
dado e retorna o objeto datetime
.
O exemplo base para utilizar este método strptime()
é mostrado abaixo,
from datetime import datetime
datetime.strptime("2018-01-31", "%Y-%m-%d")
O resultado será
datetime.datetime(2018, 1, 31, 0, 0)
As diretrizes dos códigos de formato de string são listadas aqui para sua referência
Directiva | Significado | Exemplo |
---|---|---|
%a |
Dia da semana como nome abreviado do locale. | Sun, Mon, …, Sat (en_US);So, Mo, …, Sa (de_DE) |
%A |
Dia da semana como nome completo do locale. | Domingo, segunda-feira, …, sábado (en_US);Sonntag, Montag, …, Samstag (de_DE) |
%w |
Dia da semana como um número decimal, onde 0 é domingo e 6 é sábado. | 0, 1, …, 6 |
%d |
Dia do mês como um número decimal de zero casas decimais. | 01, 02, …, 31 |
%b |
Mês como o nome abreviado do locale. | Jan, Fev, …, Dec (en_US);Jan, Fev, …, Dez (de_DE) |
%B |
Mês como nome completo do locale. | Janeiro, Fevereiro, …, Dezembro (en_US);Januar, Februar, …, Dezember (de_DE) |
%m |
Mês como um número decimal de zero casas decimais. | 01, 02, …, 12 |
%y |
Ano sem século como um número decimal sem casas decimais. | 00, 01, …, 99 |
%Y |
Ano com o século como número decimal. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
%H |
Hora (relógio de 24 horas) como um número decimal de zero casas decimais. | 00, 01, …, 23 |
%I |
Hora (relógio de 12 horas) como um número decimal de zero casas decimais. | 01, 02, …, 12 |
%p |
Equivalente local de AM ou PM. | AM, PM (en_US);am, pm (de_DE) |
%M |
Minuto como um número decimal de zero casas decimais. | 00, 01, …, 59 |
%S |
Segundo como um número decimal de zero casas decimais. | 00, 01, …, 59 |
%f |
Microssegundo como um número decimal, com teclado zerado à esquerda. | 000000, 000001, …, 999999 |
%z |
UTC offset na forma ±HHMM[SS](string vazia se o objeto for ingênuo). | (vazio), +0000, -0400, +1030 |
%Z |
Nome do fuso horário (string vazia se o objeto for ingênuo). | (vazio), UTC, EST, CST |
%j |
Dia do ano como um número decimal sem casas decimais. | 001, 002, …, 366 |
%U |
Número da semana do ano (domingo como primeiro dia da semana) como um número decimal com zero almofadas. Todos os dias de um novo ano anterior ao primeiro domingo são considerados como sendo da semana 0. | 00, 01, …, 53 |
%W |
Número da semana do ano (segunda-feira como primeiro dia da semana) como um número decimal. Todos os dias de um novo ano anterior à primeira segunda-feira são considerados como da semana 0. | 00, 01, …, 53 |
%c |
A representação apropriada da data e hora do local. | Ter 16 Ago 21:30:00 1988 (pt_US);Di 16 Ago 21:30:00 1988 (de_DE) |
%x |
A representação da data apropriada do local. | 16/08/16/88 (Nenhum);16/08/1988 (pt_US);16/08/1988 (de_DE) |
%X |
A representação temporal apropriada do local. | 21:30:00 (pt_US);21:30:00 (de_DE) |
%% |
Um caractere literal % . |
% |
Python datetime.strptime()
Exemplos
7-May-2013
formato
from datetime import datetime
dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)
Resultado:
datetime.datetime(2013, 5, 1, 0, 0)
31/12/2018
formato
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
Resultado:
datetime.datetime(2013, 12, 31, 0, 0)
Mon, July 16 2018
formato
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
Resultado:
datetime.datetime(2018, 7, 16, 0, 0)
Monday, July 16, 2018 20:01:56
formato
from datetime import datetime
dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)
Resultado:
datetime.datetime(2018, 7, 16, 20, 1, 56)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArtigo relacionado - Python String
- Remover vírgulas da string em Python
- Como verificar se uma string está vazia de uma forma pythonica
- Converter uma string em nome de variável em Python
- Como remover espaços em branco numa string em Python
- Números extraídos de uma string em Python