Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Dominando o strptime() do Python para Análise Precisa de Datas

Python strptime(): Convertendo Strings em Objetos Datetime

Este guia mostra como criar objetos datetime a partir de strings usando o método datetime.strptime() do Python, com exemplos práticos e referência completa de códigos de formato.

Vídeo: Datas e Horas em Python

Assista ao tutorial oficial do Python para aprofundar seu entendimento sobre manipulação de datetime.

O método strptime() cria um objeto datetime a partir de uma string que segue um formato especificado.

Nota: Nem toda string pode ser analisada; a entrada deve corresponder exatamente ao código de formato.


Exemplo 1: Convertendo uma String de Data Simples

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

Ao executar o programa, a saída será:

date_string = 21 June, 2018
tipo de date_string = <class 'str'>
date_object = 2018-06-21 00:00:00
tipo de date_object = <class 'datetime.datetime'>

Como o strptime() funciona

O método de classe strptime() aceita dois argumentos:

Com base nessas entradas, o método retorna um objeto datetime que representa o mesmo momento no tempo.

No exemplo acima, o código de formato %d %B, %Y significa:


Exemplo 2: Analisando Datas Ambíguas

from datetime import datetime
dt_string = "12/11/2018 09:15:32"
# Assumindo formato dia/mês/ano
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# Assumindo formato mês/dia/ano
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

O programa produz:

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

Lista Completa de Códigos de Formato

A tabela abaixo resume todas as diretivas que você pode usar com strptime(). Para documentação completa, consulte o guia oficial do módulo datetime do Python.

DiretivaSignificadoExemplo
%aNome abreviado do dia da semana.Dom, Seg, ...
%ANome completo do dia da semana.Domingo, Segunda-feira, ...
%wDia da semana como número decimal.0, 1, ..., 6
%dDia do mês (com zero à esquerda).01, 02, ..., 31
%-dDia do mês (sem preenchimento).1, 2, ..., 30
%bNome abreviado do mês.Jan, Fev, ..., Dez
%BNome completo do mês.Janeiro, Fevereiro, ...
%mNúmero do mês (com zero à esquerda).01, 02, ..., 12
%-mNúmero do mês (sem preenchimento).1, 2, ..., 12
%yAno sem século (com zero à esquerda).00, 01, ..., 99
%-yAno sem século (sem preenchimento).0, 1, ..., 99
%YAno com século.2013, 2019, ...
%HHora (relógio 24h, com zero à esquerda).00, 01, ..., 23
%-HHora (relógio 24h, sem preenchimento).0, 1, ..., 23
%IHora (relógio 12h, com zero à esquerda).01, 02, ..., 12
%-IHora (relógio 12h, sem preenchimento).1, 2, ..., 12
%pAM ou PM do locale.AM, PM
%MMinuto (com zero à esquerda).00, 01, ..., 59
%-MMinuto (sem preenchimento).0, 1, ..., 59
%SSegundo (com zero à esquerda).00, 01, ..., 59
%-SSegundo (sem preenchimento).0, 1, ..., 59
%fMicrossegundo (com zero à esquerda).000000 – 999999
%zDeslocamento UTC (+HHMM ou –HHMM).
%ZNome do fuso horário.
%jDia do ano (com zero à esquerda).001, 002, ..., 366
%-jDia do ano (sem preenchimento).1, 2, ..., 366
%UNúmero da semana (Domingo primeiro).00, 01, ..., 53
%WNúmero da semana (Segunda-feira primeiro).00, 01, ..., 53
%cData e hora do locale.Mon Sep 30 07:06:05 2013
%xData do locale.09/30/13
%XHora do locale.07:06:05
%%Um sinal de porcentagem literal.%

Erro Comum: ValueError

Se a string e o código de formato não corresponderem, strptime() lança um ValueError. Por exemplo:

from datetime import datetime
date_string = "12/11/2018"
# Formato incorreto – espera dia mês ano
date_object = datetime.strptime(date_string, "%d %m %Y")
print("date_object =", date_object)

Executar este código produz:

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

Leitura Recomendada: Python strftime()

python

  1. Palavras-chave e Identificadores em Python: Dominando Palavras Reservadas e Convenções de Nomenclatura
  2. Dominando Tipos de Dados em Python: Guia Prático
  3. Dominando Operadores em Python: Guia Completo
  4. Dominando a Declaração Pass em Python: Guia Prático
  5. Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
  6. Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
  7. Dominando Iteradores em Python: Como Funcionam e Como Criar os Seus
  8. Closures em Python Explicados: Como Funções Aninhadas Capturam Variáveis
  9. Expressões Regulares em Python (Módulo re) – Guia Prático
  10. Dominando datetime do Python: Guia Prático de Datas, Horários e Fusos Horários