Introdução
Python vem com uma variedade de objetos úteis que podem ser usados imediatamente. Objetos de data são exemplos de tais objetos. Os tipos de data são difíceis de manipular do zero, devido à complexidade das datas e horas. No entanto, os objetos de data do Python tornam extremamente fácil converter datas nos formatos de string desejáveis.
A formatação de datas é uma tarefa comum que você enfrentará como programador, e comunicar datas adequadamente aos usuários finais, se seu aplicativo as expor, é uma parte importante da UX.
Diferentes regiões ao redor do mundo têm maneiras diferentes de representar datas/horas, portanto, seu objetivo como programador é apresentar os valores de data de uma forma que seja legível para os usuários.
Por exemplo, pode ser necessário representar numericamente um valor de data como “02/23/2023”. Por outro lado, pode ser necessário escrever o mesmo valor de data em um formato textual mais longo, como “23 de fevereiro de 2023”. Em outro cenário, você pode querer extrair o mês em formato de string de um valor de data formatado numericamente.
Neste artigo, estudaremos diferentes tipos de objetos de data junto com suas funcionalidades.
O Módulo datahora
Python's datetime
O módulo contém métodos que podem ser usados para trabalhar com valores de data e hora. Para usar este módulo, primeiro o importamos através do import
declaração da seguinte forma:
import datetime
Podemos representar valores de tempo usando o time
aula. Os atributos para o time
classe inclui hora, minuto, segundo e microssegundo.
Observação: Os argumentos para o time
classe são opcionais. Embora se você não especificar nenhum argumento, retornará um tempo 0, o que provavelmente não será o que você precisa na maioria das vezes.
Por exemplo, você pode inicializar um objeto de tempo com um valor de 1 hora, 10 minutos, 20 segundos e 13 microssegundos usando:
t = datetime.time(1, 10, 20, 13)
Para ver a hora, vamos usar o print
função:
print(t)
Para extrair campos, como hora, minuto, segundo ou microssegundo – você pode acessar cada campo respectivamente:
print('hour:', t.hour)
Os minutos, segundos e microssegundos do tempo acima podem ser recuperados da seguinte forma:
print('Minutes:', t.minute)
print('Seconds:', t.second)
print('Microsecond:', t.microsecond)
Os valores para a data do calendário podem ser representados através do date
aula. As instâncias terão atributos para ano, mês e dia.
Vamos chamar o today()
método para ver a data de hoje:
import datetime
today = datetime.date.today()
print(today)
O código retornará a data de hoje, portanto a saída que você verá dependerá do dia em que você executou o script acima.
Agora vamos ligar para o ctime
método para imprimir a data em outro formato:
print('ctime:', today.ctime())
A ctime
O método usa um formato de data e hora mais longo do que os exemplos que vimos antes. Este método é usado principalmente para converter o tempo Unix (o número de segundos desde 1º de janeiro de 1970) em um formato de string.
E aqui está como podemos exibir o ano, o mês e o dia usando o date
classe:
print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)
Isto resulta em:
Year: 2022
Month: 9
Day : 15
Convertendo datas em strings com strftime ()
Agora que você sabe como criar objetos de data e hora, vamos aprender como formatá-los em strings mais legíveis.
Para conseguir isso, usaremos o strftime()
método. Este método nos ajuda a converter objetos de data em strings legíveis. São necessários dois parâmetros, conforme mostrado na seguinte sintaxe:
time.strftime(format, t)
O primeiro parâmetro é a string de formato, enquanto o segundo parâmetro é o tempo de formatação, que é opcional.
Este método também pode ser usado em um datetime
objeto diretamente, conforme mostrado no exemplo a seguir:
import datetime
x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))
Confira nosso guia prático e prático para aprender Git, com práticas recomendadas, padrões aceitos pelo setor e folha de dicas incluída. Pare de pesquisar comandos Git no Google e realmente aprender -lo!
Usamos as seguintes sequências de caracteres para formatar a data:
%b
: Retorna os três primeiros caracteres do nome do mês. No nosso exemplo, retornou “setembro”.%d
: Retorna o dia do mês, de 1 a 31. No nosso exemplo, retornou “15”.%Y
: Retorna o ano no formato de quatro dígitos. No nosso exemplo, retornou “2022”.%H
: Retorna a hora. No nosso exemplo, retornou “00”.%M
: Retorna o minuto, de 00 a 59. No nosso exemplo, retornou “00”.%S
: Retorna o segundo, de 00 a 59. No nosso exemplo, retornou “00”.
Não passamos o tempo, portanto os valores do tempo são todos “00”. O exemplo a seguir mostra como a hora também pode ser formatada:
import datetime
x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))
A lista completa de códigos de caracteres
Além das cadeias de caracteres fornecidas acima, o strftime
O método leva várias outras diretivas para formatar valores de data:
%a
: Retorna os três primeiros caracteres do dia da semana, por exemplo, Quarta.%A
: Retorna o nome completo do dia da semana, por exemplo, quarta-feira.%B
: Retorna o nome completo do mês, por exemplo, setembro.%w
: Retorna o dia da semana como um número, de 0 a 6, sendo domingo 0.%m
: Retorna o mês como um número, de 01 a 12.%p
: Retorna AM/PM para horário.%y
: Retorna o ano no formato de dois dígitos, ou seja, sem o século. Por exemplo, “18” em vez de “2018”.%f
: Retorna microssegundos de 000000 a 999999.%Z
: Retorna o fuso horário.%z
: Retorna o deslocamento UTC.%j
: Retorna o número do dia do ano, de 001 a 366.%W
: Retorna o número da semana do ano, de 00 a 53, sendo segunda-feira contada como o primeiro dia da semana.%U
: Retorna o número da semana do ano, de 00 a 53, sendo o domingo contado como o primeiro dia de cada semana.%c
: Retorna a versão local de data e hora.%x
: Retorna a versão local da data.%X
: Retorna a versão local da hora.
Considere o seguinte exemplo:
import datetime
x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))
E aqui está como você pode obter apenas o mês:
print(x.strftime('%B'))
Vamos exibir o ano:
print(x.strftime('%Y'))
Neste exemplo usamos o código de formato %Y
. Observe que o Y
está em maiúsculas. Agora escreva em letras minúsculas:
print(x.strftime('%y'))
Como você pode ver, com esses códigos de formatação você pode representar a data e hora em praticamente qualquer formato que desejar.
Convertendo Strings em Datas com strptime
A strftime()
O método nos ajudou a converter objetos de data em strings mais legíveis. O strptime()
O método faz o oposto, ou seja, pega strings e as converte em objetos de data que o Python pode entender.
Isso é útil quando você recebe uma data formatada em string e deseja convertê-la em uma data formatada em string diferente. Ao converter para um objeto de data e hora intermediário, você obtém acesso a uma estrutura analisada que pode ser reformatada para qualquer outro formato.
Aqui está a sintaxe do método:
datetime.strptime(string, format)
A string
parâmetro é o valor no formato string que queremos converter para o formato de data. O format
parâmetro é a diretiva que especifica o formato a ser adotado pela data após a conversão.
Por exemplo, digamos que precisamos converter a string “9/15/22” em um datetime
objeto.
Vamos primeiro importar o datetime
módulo:
from datetime import datetime
Podemos então definir a data na forma de uma string:
str = '9/15/22'
Python não será capaz de entender a string acima como uma data e hora até que a convertamos para um valor real datetime
objeto. Podemos fazer isso com sucesso chamando o strptime
método.
Execute o seguinte comando para converter a string:
date_object = datetime.strptime(str, '%m/%d/%y')
Vamos agora ligar para o print
função para exibir a string em datetime
formato:
print(date_object)
Como você pode ver, a conversão foi bem-sucedida!
Agora você pode converter este objeto de data em qualquer outro formato de string.
Lidar com diferentes separadores é tão fácil quanto usá-los na string de formato:
from datetime import datetime
str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)
Conclusão
Neste artigo, estudamos como formatar datas em Python. Vimos como o datetime
módulo em Python pode ser usado para a manipulação de valores de data e hora. O módulo contém uma série de classes que podem ser usadas para esse propósito. Por exemplo, o time
classe é usada para representar valores de tempo enquanto a classe date
classe é usada para representar valores de data do calendário.