calcular data e hora com python

O cálculo de data e hora pode ser feito de maneira manual, como a maioria dos programadores faz. No python, além do modo manual, há um módulo facilita esse tipo de procedimento.

É o módulo datetime, que provê dois objetos com essa finalidade: datetime e timedelta.

Usando datetime.datetime.now() temos a data e hora atual em um tuple, no seguinte formato:

  • ano (4 dígitos)
  • mês
  • dia
  • hora
  • minuto
  • segundo
  • microsegundo

Já os objetos timedelta, são usados para representar uma duração, ou a diferença entre duas datas e/ou horas. Usando esses objetos, é muito simples fazer qualquer ajuste a um objeto do tipo datetime.

No exemplo abaixo, irei primeiro pegar a data e hora atual. Depois, irei subtrair 2 horas dessa data, e finalmente, adicionar 40 dias nela. Veja:

>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2008, 9, 5, 11, 25, 38, 498814)
>>> now - timedelta(hours=2)
datetime.datetime(2008, 9, 5, 9, 25, 38, 498814)
>>> now + timedelta(days=40)
datetime.datetime(2008, 10, 15, 11, 25, 38, 498814)

A data e hora atual era 11:25:38 do dia 05/09/2008. Ao subtrair 2 horas, tivemos 9:25:38, e ao adicionar 40 dias, tivemos 15/10/2008.

Moleza, hein?

Anúncios

3 Comentários on “calcular data e hora com python”

  1. caarlos0 disse:

    curti..

    também tem umas paradas legais, para, por exemplo, exibir só a data..
    tipo

    x = datetime.now()
    print x.date()

    ele vai exibir somente a data, em formato YYYY – mm – DD
    mas se quiser exibir a data em formato dd-mm-yyyy

    print str(datetime.now().day), ‘-‘,str(datetime.now().month),’-‘,str(datetime.now().year)

    descobri isso fuçando agora a pouco ueahuea
    iniciante só se f*de xD

    belo artigo, parabéns.
    abraço

  2. alef disse:

    então, pro caso de formatar a data do objeto “now()” do datetime, é possível (e provavelmente melhor) usar o strftime, assim como na linguagem c.

    >>> from datetime import datetime
    >>> x = datetime.now()
    >>> x.strftime(‘%Y-%m-%d %H:%M:%S’)
    ‘2008-11-04 15:45:21’

  3. caarlos0 disse:

    hmm, dessa eu não sabia.

    valeuu cara, abraço!


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s