Python DateTime, TimeDelta, Strftime(Format) com exemplos
Em Python, data, hora e data/hora classes fornece uma série de funções para lidar com datas, horas e intervalos de tempo. Date e datetime em Python são os objetos, então quando você os manipula, você está manipulando objetos e não strings ou timestamps. Sempre que você manipular datas ou horas, você precisa importar a função datetime.
As classes datetime em Python são categorizadas em 5 classes principais.
- data – Manipula apenas a data (mês, dia, ano)
- hora – 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— Uma classe abstrata para lidar com fusos horários
Neste tutorial, vamos aprender-
- Como usar a classe Date e DateTime
- Imprimir data usando date.today()
- Data e hora atuais do Python:now() today()
- Como formatar a saída de data e hora com Strftime()
- Como usar objetos Timedelta
Como usar a classe Date &DateTime
Etapa 1 ) Antes de executar o código para o formato datetime em Python, é importante importar os módulos de data e hora do Python, conforme mostrado na captura de tela abaixo.
Essas instruções de importação são peças de funcionalidade predefinidas na biblioteca Python que permitem manipular datas e horas, sem escrever nenhum código.
Considere os seguintes pontos antes de executar o código de formato de data e hora do Python
from datetime import date
Esta linha diz ao interpretador Python para importar a classe date do módulo datetime em Python. Não estamos escrevendo o código para esta funcionalidade de data, apenas importando para nosso uso
Etapa 2 ) Em seguida, criamos uma instância do objeto de data.
Etapa 3 ) Em seguida, imprimimos a data e executamos o código.
A saída é a esperada.
Imprimir data usando date.today()
date.today
função tem várias propriedades associadas a ela. Podemos imprimir dia/mês/ano individual e muitas outras coisas Vejamos 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 segunda-feira como 0 e domingo como 6
Weekday Number é útil para arrays cujo índice é dependente do dia da semana.
Data e hora atuais do Python:now() today()
Etapa 1) Assim como os objetos de data, também podemos usar "DATETIME OBJECTS" em Python. Os objetos de data e hora do Python fornecem a data junto com a hora em horas, minutos, segundos e milissegundos.
Quando executamos o código para datetime, ele fornece a saída com data e hora atuais.
Etapa 2) Com “DATETIME OBJECT”, você também pode chamar a classe de tempo.
Suponha que queremos imprimir apenas a hora atual sem a data.
t = datetime.time(datetime.now())
- Nós importamos a classe de tempo. Estaremos atribuindo a ele o valor atual de tempo usando datetime.now()
- Estamos atribuindo o valor da hora atual à variável t.
E isso me dará apenas o tempo. Então vamos executar este programa.
Ok, então você pode ver que aqui eu tenho a data e hora. E então a próxima linha, eu tenho o tempo sozinho
Etapa 3) Aplicaremos nosso indexador de dia da semana ao arrayList de nosso dia da semana para saber qual dia é hoje
- O operador de dias da semana (wd) recebe o número de (0-6) dependendo do dia da semana atual. Aqui declaramos o array da lista por dias (Seg, Ter, Qua…Sun).
- Use esse valor de índice para saber que dia é. No nosso caso, é o número 2 e representa a quarta-feira, portanto, na saída, será impresso "O que é uma 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()
A partir de agora, aprendemos como usar datetime e date object em Python. Daremos um passo adiante e aprenderemos como usar uma função de formatação para formatar Hora e Data.
Etapa 1) Primeiro veremos um passo simples de como formatar o ano. É melhor entender com um exemplo.
- Usamos a “função strftime” para formatação.
- Esta função usa um código de controle diferente para dar uma saída.
- Cada código de controle se assemelha a parâmetros diferentes, 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 inteiro com o século (por exemplo, 2018).
Etapa 2) Agora, se você substituir (“%Y”) por minúscula, 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 como mostrado na captura de tela abaixo
Etapa 3) A função Strf pode declarar a data, dia, mês e ano separadamente. Também com pequenas alterações no código de controle na função strftime você pode 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 “Firday” em vez de apenas uma abreviação “Fri”.
Etapa 4) Com a ajuda da função “Strftime” também podemos recuperar a hora do sistema local, data ou ambos.
- %C- indica a data e hora locais
- %x- indica a data local
- %X- indica a hora local
Na saída, você pode ver o resultado como esperado
Etapa 5) A “função strftime” permite que você chame a hora em qualquer formato 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 tempo é declarado [print now.strftime(“%I:%M:%S %p)]
24 horas 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?
Timedelta em Python é um objeto que representa a duração. É usado principalmente para calcular a duração entre duas datas e horas. Também é usado para recuperar o objeto com alguma data e hora delta. O objeto timedelta suporta operações matemáticas como adições, subtrações, multiplicação, divisão etc.
Como usar objetos Timedelta
Com os objetos timedelta do Python, 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 é para imprimir a hora ou data, mas algo para CALCULAR sobre o futuro ou passado . Vamos ver um exemplo de timedelta do Python para entender melhor.
Etapa 1) Para executar objetos Timedelta, você precisa declarar primeiro a instrução de importação e depois executar o código
- Escrever 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 período de 365 dias, 8 horas e 15 minutos e imprime o mesmo
Confuso? O próximo passo ajudará-
Etapa 2) Vamos pegar a data e hora de hoje para verificar se nossa declaraçã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
Etapa 3) Veremos como podemos recuperar a data daqui a um ano através de objetos delta. Quando executamos o código, ele fornece a saída conforme o esperado.
Etapa 4) Outro exemplo de como o delta do tempo pode ser usado para calcular a data futura a partir da data e hora atuais
Etapa 5) Vejamos um exemplo mais complexo. Eu gostaria de determinar quantos dias depois do Ano Novo. Aqui está como vamos proceder
- Usando today=date.today(), obteremos a data de hoje
- Sabemos que o ano novo é sempre em 1º de janeiro, mas o ano pode ser diferente. Usando nyd=date(today.year,1,1) armazenamos o novo ano na variável nyd
- if nyd
- ((today-nyd).days) fornece a diferença entre a data atual e o ano novo em DAYS
A saída 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))
Exemplo do Python 2
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)
Resumo
Para manipular datas e horas de maneiras simples e complexas, o módulo datetime fornece diferentes classes ou categorias como
- data – Manipula apenas a data (mês, dia, ano)
- hora – 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— Uma classe abstrata para lidar com fusos horários
Usando objetos de data e hora
- Importar objetos de data e hora antes de executar o código é obrigatório
- Usando a função date.today para imprimir data/mês/ano individual, bem como indexar o dia
- Usando o objeto date.time para obter o tempo em horas, minutos, segundos e milissegundos
Formatação de tempo limite com “str f time function”
- Use “str f time function” para alterar o formato do ano
- Imprimir dia, data, mês e ano separadamente,
- Tempo de chamada para qualquer formato 12 horas ou 24 horas
Objetos Timedelta
- Com objetos timedelta, você pode estimar o tempo para o futuro e o passado
- Calcule o total de dias restantes para o dia especial (aniversário) a partir da hora atual
- Calcule o total de dias passados para um dia especial (aniversário) a partir da hora atual
python
- Data e hora do Python
- Como obter data e hora atuais em Python?
- Python Obter hora atual
- Módulo de tempo Python
- Python dormir()
- Instrução Python Print():Como imprimir com exemplos
- Python String count() com EXEMPLOS
- Python String format() Explique com EXEMPLOS
- Método Python String find() com exemplos
- Funções do Python Lambda com EXEMPLOS