Python DataHora, HoraDelta, Strftime (formato) com exemplos

Em Python, data, hora e datahora classes fornece uma série de funções para lidar com datas, horas e intervalos de tempo. Data e data e hora em Python são os objetos, portanto, quando você os manipula, você está na verdade manipulando objetos e não strings ou carimbos de data/hora. Sempre que você manipula datas ou horas, você precisa importar a função datetime.

As classes datetime 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)
  • tempodelta— Uma duração de tempo usada para manipular datas
  • tzinfo— Uma classe abstrata para lidar com fusos horários

Como usar a classe Date e DateTime

Passo 1) Antes de executar o código para o formato de data e hora em Python, é importante que você importe os módulos de data e hora do Python, conforme mostrado na captura de tela abaixo.

Usar classe Date e DateTime

Essas instruções de importação são funcionalidades predefinidas na biblioteca Python que permitem manipular datas e horas, sem escrever nenhum código.

Considere o seguintewing pontos antes de executar o código de formato de data e hora Python

from datetime import date

Esta linha informa ao interpretador Python para importar a classe de data do módulo datetime em Python. Não estamos escrevendo o código para esta funcionalidade de data, apenas importando-o para nosso uso

Passo 2) Em seguida, criamos uma instância do objeto de data.

Usar classe Date e DateTime

Passo 3) Em seguida, imprimimos a data e executamos o código.

Usar classe Date e DateTime

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

Vamos ver um exemplo

Imprimir data usando date.today()

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 dos dias da semana que começa com segunda-feira como 0 e domingo como 6

Dia Número do dia da semana
Segunda-feira 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.

Imprimir data usando date.today()

Data e hora atuais do Python: agora() hoje()

Passo 1) Assim como os objetos de data, também podemos usar “OBJETOS DATA HORA” em Python. Os objetos de data e hora do Python fornecem a data junto com a hora em horas, minutos, segundos e milissegundos.

Data e hora atuais do Python

Quando executamos o código para datetime, ele fornece a saída com a data e hora atuais.

Passo 2) Com “DATETIME OBJECT”, 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.

Data e hora atuais do Python

Ok, então você pode ver que aqui tenho a data e a hora. E então a próxima linha, eu tenho o tempo sozinho

Passo 3) Aplicaremos nosso indexador de dias da semana ao arrayList de nossos dias da semana para saber que dia é hoje

  • O operador de dias da semana (wd) recebe o número (0-6) dependendo de qual é o dia da semana atual. Aqui declaramos o array da lista por 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”.

Data e hora atuais do Python

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 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.

Formatar saída de data e hora com Strftime()

  • Usamos 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 se assemelha 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

Formatar saída de data e hora com Strftime()

Passo 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.

Formatar saída de data e hora com Strftime()

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 abreviatura “Fri”.

Formatar saída de data e hora com Strftime()

Passo 4) Com a ajuda da função “Strftime” também podemos recuperar a hora, data do sistema local ou ambos.

  1. %C- indica a data e hora local
  2. %x- indica a data local
  3. %X- indica a hora local

Formatar saída de data e hora com Strftime()

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.

Formatar saída de data e hora com Strftime()

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 é o tempodelta em Python?

Horáriodelta 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 algum delta data e hora. A Horadelta objeto suporta operações matemáticas como adições, subtrações, multiplicação, divisão, etc.

Como usar o tempodelta objetos

Com o tempo Pythondelta objetos, você pode estimar o tempo tanto para o futuro quanto para 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 passado. Vamos ver um horário em Pythondelta exemplo para entender melhor.

Passo 1) Para executar o tempodelta Objetos, você precisa declarar a instrução de importação primeiro e depois executar o código

Horáriodelta objetos

  1. Escreva a instrução de importação por tempodelta
  2. Agora escreva o código para imprimir o objeto do tempo delta como mostrado na captura de tela
  3. Execute o código. A Horadelta representa um período 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

Horáriodelta objetos

Passo 3) Veremos como podemos recuperar a data daqui a um ano até delta objetos. Quando executamos o código, ele fornece a saída conforme esperado.

Horáriodelta objetos

Passo 4) Outro exemplo de como o tempo delta pode ser usado para calcular a data futura a partir da data e hora atuais

Horáriodelta objetos

Passo 5) Vamos dar uma olhada em mais complex exemplo. 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: compares se a data atual é maior que o ano novo. Se sim, ele entra no loop while
  • ((today-nyd).days) fornece a diferença entre a data atual e o ano novo em DIAS

Horáriodelta objetos

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))

Exemplo de 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 forma simples e comumplex maneiras pelas quais o módulo datetime fornece diferentes classes ou categorias como

  • 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)
  • tempodelta— 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

  • A importação de objetos datetime antes de executar o código é obrigatória
  • 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

Formatando Time-Out com “str f time function”

  • Use “str f time function” para alterar o formato do ano
  • Imprima dia, data, mês e ano separadamente,
  • Informe o horário para qualquer formato 12 horas ou 24 horas

Horáriodelta objetos

  • Com tempodelta objetos, 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 o dia especial (aniversário) a partir da hora atual