Python DataHora, HoraDelta, Strftime (formato) com exemplos
โก Resumo Inteligente
Python O mรณdulo datetime, juntamente com as classes date, time e timedelta, manipula datas, horas e intervalos como objetos. O mรณdulo datetime formata a saรญda com strftime(), analisa strings e calcula momentos futuros ou passados โโusando aritmรฉtica timedelta.

In Python, data, hora e datahora As classes fornecem diversas funรงรตes para lidar com datas, horas e intervalos de tempo. Data e hora em Python Sรฃo objetos, portanto, ao manipulรก-los, vocรช estรก de fato manipulando objetos e nรฃo strings ou timestamps. Sempre que vocรช manipular datas ou horas, precisarรก importar o mรณdulo datetime.
As classes de data e hora em Python sรฃo categorizadas em 5 classes principais.
- data โ Manipular apenas a data (mรชs, dia, ano)
- time โ Hora independente do dia (hora, minuto, segundo, microssegundo)
- datetime โ Combinaรงรฃo de hora e data (mรชs, dia, ano, hora, segundo, microssegundo)
- timedeltaโ Uma duraรงรฃo de tempo usada para manipular datas
- tzinfoโ Um abstracClasse t para lidar com fusos horรกrios
Como usar a classe Date e DateTime
Etapa 1) Antes de executar o cรณdigo para o formato de data e hora em Python, รฉ importante que vocรช importe o Python mรณdulos de data e hora conforme mostrado na imagem abaixo.
Essas instruรงรตes de importaรงรฃo sรฃo peรงas de funcionalidade predefinidas no Python Biblioteca que permite manipular datas e horas sem escrever nenhum cรณdigo.
Considere os seguintes pontos antes de executar o Python cรณdigo de formato de data e hora
from datetime import date
Esta linha diz ao Python interpretador para importar a classe de data do mรณdulo datetime em PythonNรฃo estamos escrevendo o cรณdigo para essa funcionalidade de data, mas simplesmente a estamos importando para nosso uso.
Imprimir data usando date.today()
A funรงรฃo date.today() possui diversas propriedades associadas a ela. Podemos imprimir o dia/mรชs/ano individualmente e muitas outras informaรงรตes.
Vamos ver um exemplo
Nรบmero do dia da semana de hoje
A funรงรฃo date.today() tambรฉm fornece o nรบmero do dia da semana. Aqui estรก a tabela de dias da semana que comeรงa com Monday como 0 e domingo como 6.
| Dia | Nรบmero do dia da semana |
|---|---|
| Monday | 0 |
| Terรงa-feira | 1 |
| Wednesday | 2 |
| Quinta-feira | 3 |
| Sexta-feira | 4 |
| Sรกbado | 5 |
| Domingo | 6 |
Weekday Number รฉ รบtil para matrizes cujo รญndice depende do dia da semana.
Etapa 2) Em seguida, criamos uma instรขncia do objeto de data.
Etapa 3) Em seguida, imprimimos a data e executamos o cรณdigo.
O resultado รฉ o esperado.
Python Data e hora atuais: agora() hoje()
Passo 1) Assim como os objetos de data, tambรฉm podemos usar โOBJETOS DATA HORAโ in Python. Python objetos de data e hora fornecem data junto com hora em horas, minutos, segundos e milissegundos.
Quando executamos o cรณdigo para datetime, ele fornece a saรญda com a data e hora atuais.
Passo 2) Com o โOBJETO DATETIMEโ, vocรช tambรฉm pode chamar a classe de tempo. Suponha que queiramos imprimir apenas a hora atual, sem a data.
t = datetime.time(datetime.now())
- Havรญamos importado a classe de tempo. Estaremos atribuindo a ele o valor atual do tempo usando datetime.now()
- Estamos atribuindo o valor do tempo atual ร variรกvel t.
E isso vai me dar o tempo certo. Entรฃo, vamos executar este programa.
Certo, entรฃo vocรช pode ver que aqui eu tenho a data e a hora. E na linha seguinte, eu tenho apenas a hora.
Passo 3) Aplicaremos nosso indexador de dias da semana ร nossa lista de arrays de dias da semana para saber qual dia รฉ hoje.
- O operador de dias da semana (wd) recebe um nรบmero de (0-6) dependendo do dia da semana atual. Aqui declaramos o array da lista de dias (Seg, Ter, QuaโฆDom).
- Use esse valor de รญndice para saber que dia รฉ hoje. No nosso caso, รฉ o nรบmero 2 e representa quarta-feira, portanto, na saรญda serรก impresso โO que รฉ quarta-feiraโ.
Aqui estรก o cรณdigo completo para obter a data e hora atuais usando datetime agora
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Como formatar a saรญda de data e hora com Strftime()
Atรฉ agora, aprendemos como usar datetime e date. objeto em Python. Avanรงaremos um passo adiante e aprenderemos como usar uma funรงรฃo de formataรงรฃo para formatar hora e data.
Passo 1) Primeiro veremos um passo simples de como formatar o ano. ร melhor entender com um exemplo.
- Utilizou-se o โfunรงรฃo strftimeโ para formataรงรฃo.
- Esta funรงรฃo usa diferentes cรณdigo de controle para dar uma saรญda.
- Cada cรณdigo de controle corresponde a diferentes parรขmetros, como ano, mรชs, dia da semana e data. [(%y/%Y โ Ano), (%a/%A- dia da semana), (%b/%B- mรชs), (%d โ dia do mรชs)] .
- No nosso caso, รฉ (โ%Yโ) que se assemelha ao ano, imprime o ano completo com o sรฉculo (por exemplo, 2018).
Passo 2) Agora se vocรช substituir (โ%Yโ) por minรบsculo, ou seja, ( โ%y) e executar o cรณdigo a saรญda exibirรก apenas (18) e nรฃo (2018). O sรฉculo do ano nรฃo serรก exibido conforme mostrado na imagem abaixo
Passo 3) A funรงรฃo strf permite declarar a data, o dia, o mรชs e o ano separadamente. Alรฉm disso, com pequenas alteraรงรตes no cรณdigo de controle da funรงรฃo strftime, รฉ possรญvel formatar o estilo do texto.
Dentro da funรงรฃo strftime, se vocรช substituir (%a) por A maiรบsculo, ou seja, (%A), a saรญda serรก impressa como โFridayโ em vez de apenas a abreviaรงรฃo โFriโ.
Passo 4) Com a ajuda da funรงรฃo โStrftimeโ tambรฉm podemos recuperar a hora, data do sistema local ou ambos.
- %C- indica a data e hora local
- %x- indica a data local
- %X- indica a hora local
Na saรญda, vocรช pode ver o resultado conforme o esperado
Passo 5) A โfunรงรฃo strftimeโ permite chamar a hora em qualquer formato de 24 horas ou 12 horas.
Apenas definindo o cรณdigo de controle como %I/H para hora, % M para minuto, %S para segundo, pode-se chamar o tempo para diferentes formatos
12 horas a hora รฉ declarada [print now.strftime(โ%I:%M:%S %p) ]
24 horas a hora รฉ declarada [print now.strftime(โ%H:%Mโ)]
Aqui estรก o cรณdigo completo para converter data e hora em objeto String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
O que รฉ Timedelta em Python?
Tempodelta em Python รฉ um objeto que representa a duraรงรฃo. ร usado principalmente para calcular a duraรงรฃo entre duas datas e horรกrios. Tambรฉm รฉ usado para recuperar o objeto com alguma diferenรงa de data e horรกrio. O objeto timedelta suporta operaรงรตes matemรกticas como adiรงรตes, subtraรงรตes e multiplicaรงรตes.tracoperaรงรตes, multiplicaรงรฃo, divisรฃo, etc.
Como usar objetos Timedelta
Com Python objetos timedelta, vocรช pode estimar o tempo para o futuro e o passado. Em outras palavras, รฉ um intervalo de tempo para prever qualquer dia, data ou hora especial.
Lembre-se que esta funรงรฃo nรฃo serve para imprimir a hora ou data, mas sim algo para CALCULAR sobre o futuro ou passadoVamos ver um Python Exemplo de timedelta para entender melhor.
Passo 1) Para executar objetos Timedelta, vocรช precisa primeiro declarar a instruรงรฃo de importaรงรฃo e depois executar o cรณdigo
- Escreva a instruรงรฃo de importaรงรฃo para timedelta
- Agora escreva o cรณdigo para imprimir o objeto do delta do tempo, conforme mostrado na captura de tela
- Execute o cรณdigo. O timedelta representa um intervalo de 365 dias, 8 horas e 15 minutos e imprime o mesmo
Confuso? O prรณximo passo ajudarรก-
Passo 2) Vamos obter a data e hora de hoje para verificar se nossa instruรงรฃo de importaรงรฃo estรก funcionando bem. Quando o cรณdigo รฉ executado, ele imprime a data de hoje, o que significa que nossa instruรงรฃo de importaรงรฃo estรก funcionando bem
Passo 3) Veremos como podemos recuperar a data daqui a um ano por meio de objetos delta. Quando executamos o cรณdigo, ele fornece a saรญda conforme esperado.
Passo 4) Outro exemplo de como o delta de tempo pode ser usado para calcular a data futura a partir da data e hora atuais
Passo 5) Vejamos um exemplo mais complexo. Gostaria de determinar quantos dias se passaram do Ano Novo. Aqui estรก como procederemos
- Usando hoje=date.today() obteremos a data de hoje
- Sabemos que o ano novo รฉ sempre no dia 1ยบ de janeiro, mas o ano pode ser diferente. Usando nyd= date(today.year,1,1) armazenamos o novo ano na variรกvel nyd
- Se nyd < hoje: compara se a data atual รฉ posterior ao novo ano. Se for, entra no loop while.
- ((today-nyd).days) fornece a diferenรงa entre a data atual e o ano novo em DIAS
O resultado mostra que โo dia de Ano Novo jรก passou hรก 11 diasโ.
Aqui estรก o cรณdigo de trabalho completo
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Exemplo
Os exemplos a seguir mostram as mesmas operaรงรตes de data e hora escritas para Python 2, onde print รฉ uma instruรงรฃo em vez de uma funรงรฃo. Use essas versรตes somente ao manter sistemas legados. Python 2 cรณdigos.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















