English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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'>
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
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
A tabela a seguir mostra todos os códigos de formato que você pode usar.
Instrução | Significado | Exemplo |
%a | Abreviação do nome do dia da semana. | Dom, Seg, ... |
%A | Nome completo do dia da semana. | Domingo, Segunda-feira, ... |
%w | Dia da semana representado por número decimal. | 0,1,...,6 |
%d | Dia do mês representado por número decimal preenchido com zeros. | 01, 02,...,31 |
%-d | Dia do mês representado por número decimal. | 1,2,...,30 |
%b | Abreviação do mês. | Jan, Fev, ..., Dez |
%B | Nome completo do mês. | Janeiro, Fevereiro, ... |
%m | Mês representado por número decimal preenchido com zeros. | 01hora),número decimal preenchido com zeros.2,...,12 |
%-m | Mês representado por número decimal. | 1,2,...,12 |
%y | Ano sem século, número decimal preenchido com zeros. | 00、01,...,99 |
%-y | Ano sem século representado como número decimal. | 0,1,...,99 |
%Y | Ano decimal representado com século. | 2013,2019etc |
%H | I24Sistema de 24 horas), número decimal com zeros para complementar. | 00、01,...,23 |
%-H | I24hora( | 0,1,...,23 |
H | I12%I | 01hora),número decimal preenchido com zeros.2,...,12 |
%-、0 | I12hora( | 1 2 2 |
O sistema horário (em decimal). | A manhã ou tarde no ambiente de idioma. | AM,PM |
%M | Minuto, número decimal preenchido com zeros. | 00、01,...,59 |
%-M | Representado por um número decimal. | 0,1,...,59 |
%S | O segundo número decimal preenchido com zeros. | 00、01,...,59 |
%-S | O segundo número decimal. | 0,1,...,59 |
%f | Microssegundos, número decimal, preenchido com zeros à esquerda. | 000000-999999 |
%z | O deslocamento UTC, formatado como+ HHMM ou-HHMM。 | |
%Z | O nome da zona de tempo. | |
%j | O dia do ano, representado por um número decimal preenchido com zeros. | 001,002,...,366 |
%-j | O dia do ano, representado por um número decimal. | 1,2,...,366 |
%U | A 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 |
%W | A 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 |
%c | A representação apropriada da data e hora no ambiente de idioma. | Mon Sep 30 07:06:05 2013 |
%x | A representação apropriada da data no ambiente de idioma. | 13/9/30 |
%X | A representação apropriada do tempo no ambiente de idioma. | 07:06:05 |
%% | O caractere de texto "%". | % |
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