English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico do Python

Controle de Fluxo do Python

Funções no Python

Tipos de Dados do Python

Operações de Arquivos do Python

Objetos e Classes do Python

Data e Hora do Python

Conhecimentos Avançados do Python

Manual de Referência do Python

strptime() no Python

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

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

Atenção:Você não pode criar um objeto datetime a partir de cada string. A string deve seguir algum formato.

Exemplo1: String do objeto de data e hora

from datetime import datetime
date_string = "21 Junho, 2018"
print("date_string =", date_string)
print("date_string数据类型 =", type(date_string))
data_object = datetime.strptime(data_string, "%d %B, %Y")
print("date_object =", date_object)
print("data_object	tipo de dados	=", type(data_object))

A saída do programa ao executar:

data_string	= 21 Junho, 2018
data_string	tipo de dados	= 	<class 'str'>
data_object	= 2018-06-21 00:00:00
data_object	tipo de dados	= 	<class 'datetime.datetime'>

Como o strptime() funciona?

O método strptime() tem dois parâmetros:

  • String (será convertida para data e hora)

  • Código de formato

De acordo com a string usada e o código de formato, o método retorna o objeto datetime equivalente.

No exemplo acima:

Aqui,

  • %d-Representa o dia do mês.Exemplo: 01, 02,...,31

  • %B-Nome completo do mês.Por exemplo:Janeiro, Fevereiro, etc

  • %Y-O ano é representado por quatro dígitos.Por exemplo: 2018,2019etc

Exemplo2: String do objeto de data e hora

from datetime import datetime
dt_string = "12/11/2019 09:15:32"
# Data como dd / mm / Formato yyyy
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# Data como mm / dd / Formato yyyy
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

A saída do programa ao executar:

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

Lista de códigos de formato

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

InstruçãoSignificadoExemplo
%aAbreviação do nome do dia da semana.Dom, Seg, ...
%ANome completo do dia da semana.Domingo, Segunda-feira, ...
%wDia da semana representado por número decimal.0,1,...,6
%dDia do mês representado por número decimal preenchido com zeros.01, 02,...,31
%-dDia do mês representado por número decimal.1,2,...,30
%bAbreviação do mês.Jan, Fev, ..., Dez
%BNome completo do mês.Janeiro, Fevereiro, ...
%mMês representado por número decimal preenchido com zeros.01hora),número decimal preenchido com zeros.2,...,12
%-mMês representado por número decimal.1,2,...,12
%yAno sem século, número decimal preenchido com zeros.00、01,...,99
%-yAno sem século representado como número decimal.0,1,...,99
%YAno decimal representado com século.2013,2019etc
%HI24Sistema de 24 horas), número decimal com zeros para complementar.00、01,...,23
%-HI24hora(0,1,...,23
HI12%I01hora),número decimal preenchido com zeros.2,...,12
%-、0I12hora(1 2 2
O sistema horário (em decimal).A manhã ou tarde no ambiente de idioma.AM,PM
%MMinuto, número decimal preenchido com zeros.00、01,...,59
%-MRepresentado por um número decimal.0,1,...,59
%SO segundo número decimal preenchido com zeros.00、01,...,59
%-SO segundo número decimal.0,1,...,59
%fMicrossegundos, número decimal, preenchido com zeros à esquerda.000000-999999
%zO deslocamento UTC, formatado como+ HHMM ou-HHMM。 
%ZO nome da zona de tempo. 
%jO dia do ano, representado por um número decimal preenchido com zeros.001,002,...,366
%-jO dia do ano, representado por um número decimal.1,2,...,366
%UA semana do ano (o primeiro dia da semana é o domingo). Todos os dias do novo ano antes do primeiro domingo são considerados na semana 0.00、01,...,53
%WA semana do ano (o primeiro dia da semana é o primeiro dia da semana). Todos os dias do novo ano antes do primeiro domingo são considerados na semana 0.00、01,...,53
%cA representação apropriada da data e hora no ambiente de idioma.Mon Sep 30 07:06:05 2013
%xA representação apropriada da data no ambiente de idioma.13/9/30
%XA representação apropriada do tempo no ambiente de idioma.07:06:05
%%O caractere de texto "%".%

ValueError no strptime()

Se a string passada (primeiro parâmetro) e o código de formato (segundo parâmetro) do strptime() não coincidirem, 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, ocorrerá um erro.

ValueError: time data '12/11/2018' does not match format '%d %m %Y'

Leia também: strftime() no Python