Como formatar datas em Python

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.

Carimbo de hora:

Mais de Abuso de pilha