Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Python - Data e hora

Página anteriorPróxima página
Um programa Python pode lidar com data e hora de várias maneiras. A conversão entre formatos de data é uma tarefa comum para computadores. Os módulos de tempo e calendário do Python ajudam a rastrear datas e horários.

O que é Tick?


Os intervalos de tempo são números de ponto flutuante em unidades de segundos. Instantes particulares no tempo são expressos em segundos desde 00:00:00 hrs de 1º de janeiro de 1970 (época).

Há um horário popular módulo disponível em Python que fornece funções para trabalhar com tempos e para converter entre representações. A função hora.hora() retorna a hora atual do sistema em tiques desde 00:00:00 hrs de 1º de janeiro de 1970 (época).

Exemplo

Demonstração ao vivo
#!/usr/bin/python
import time;  # This is required to include time module.

ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks

Isso produziria um resultado algo como segue -
Number of ticks since 12:00am, January 1, 1970: 7186862.73399

A aritmética de datas é fácil de fazer com carrapatos. No entanto, datas anteriores à época não podem ser representadas desta forma. As datas no futuro distante também não podem ser representadas dessa maneira - o ponto de corte é em algum momento de 2038 para UNIX e Windows.

O que é TimeTuple?


Muitas das funções de tempo do Python tratam o tempo como uma tupla de 9 números, como mostrado abaixo −
Índice Campo Valores
0 ano de 4 dígitos 2008
1 Mês 1 a 12
2 Dia 1 a 31
3 Hora 0 a 23
4 Minuto 0 a 59
5 Segundo 0 a 61 (60 ou 61 são segundos bissextos)
6 Dia da semana 0 a 6 (0 é segunda-feira)
7 Dia do ano 1 a 366 (dia juliano)
8 Economia de verão -1, 0, 1, -1 significa que a biblioteca determina o horário de verão

A tupla acima é equivalente a struct_time estrutura. Esta estrutura tem os seguintes atributos -
Índice Atributos Valores
0 tm_year 2008
1 tm_mon 1 a 12
2 tm_mday 1 a 31
3 tm_hour 0 a 23
4 tm_min 0 a 59
5 tm_sec 0 a 61 (60 ou 61 são segundos bissextos)
6 tm_wday 0 a 6 (0 é segunda-feira)
7 tm_yday 1 a 366 (dia juliano)
8 tm_isdst -1, 0, 1, -1 significa que a biblioteca determina o horário de verão

Como obter a hora atual


Para traduzir um instante de tempo de segundos desde a época valor de ponto flutuante em uma tupla de tempo, passe o valor de ponto flutuante para uma função (por exemplo, localtime) que retorna uma tupla de tempo com todos os nove itens válidos.
Demonstração ao vivo
#!/usr/bin/python
import time;

localtime = time.localtime(time.time())
print "Local current time :", localtime

Isso produziria o seguinte resultado, que poderia ser formatado em qualquer outra forma apresentável -
Local current time : time.struct_time(tm_year=2013, tm_mon=7, 
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)

Como obter a hora formatada


Você pode formatar a qualquer momento conforme sua necessidade, mas o método simples para obter a hora em formato legível é asctime() −
Demonstração ao vivo
#!/usr/bin/python
import time;

localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime

Isso produziria o seguinte resultado -
Local current time : Tue Jan 13 10:17:09 2009

Obtendo calendário por um mês


O módulo de calendário oferece uma ampla variedade de métodos para brincar com calendários anuais e mensais. Aqui, imprimimos um calendário para um determinado mês (Janeiro de 2008) −
Demonstração ao vivo
#!/usr/bin/python
import calendar

cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal

Isso produziria o seguinte resultado -
Here is the calendar:
   January 2008
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

A hora Módulo


Há um horário popular módulo disponível em Python que fornece funções para trabalhar com tempos e para converter entre representações. Aqui está a lista de todos os métodos disponíveis -
Nº Sr. Função com descrição
1 hora.altzone
O deslocamento do fuso horário do horário de verão local, em segundos a oeste do UTC, se um estiver definido. Isso é negativo se o fuso horário do horário de verão local estiver a leste do UTC (como na Europa Ocidental, incluindo o Reino Unido). Use apenas se a luz do dia for diferente de zero.
2 time.asctime([tupletime])
Aceita uma tupla de tempo e retorna uma string de 24 caracteres legível, como 'Tue Dec 11 18:07:14 2008'.
3 hora.relógio( )
Retorna o tempo de CPU atual como um número de segundos de ponto flutuante. Para medir os custos computacionais de diferentes abordagens, o valor de time.clock é mais útil que o de time.time().
4 time.ctime([secs])
Como asctime(localtime(secs)) e sem argumentos é como asctime( )
5 time.gmtime([secs])
Aceita um instante expresso em segundos desde a época e retorna uma tupla de tempo t com a hora UTC. Nota:t.tm_isdst é sempre 0
6 time.localtime([secs])
Aceita um instante expresso em segundos desde a época e retorna uma tupla de tempo t com a hora local (t.tm_isdst é 0 ou 1, dependendo se o horário de verão se aplica a segundos instantâneos pelas regras locais).
7 time.mktime(tupletime)
Aceita um instante expresso como uma tupla de tempo na hora local e retorna um valor de ponto flutuante com o instante expresso em segundos desde a época.
8 tempo.sono(s)
Suspende o thread de chamada por segundos segundos.
9 time.strftime(fmt[,tupletime])
Aceita um instante expresso como uma tupla de tempo na hora local e retorna uma string representando o instante conforme especificado pela string fmt.
10 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
Analisa str de acordo com a string de formato fmt e retorna o instante no formato de tupla de tempo.
11 hora.hora()
Retorna o instante de tempo atual, um número de ponto flutuante de segundos desde a época.
12 tempo.tzset()
Redefine as regras de conversão de tempo usadas pelas rotinas da biblioteca. A variável de ambiente TZ especifica como isso é feito.

Vamos percorrer as funções brevemente -

Existem dois atributos importantes disponíveis com o módulo de tempo -
Nº Sr. Atributo com Descrição
1
time.timezone

O atributo time.timezone é o deslocamento em segundos do fuso horário local (sem DST) do UTC (>0 nas Américas; <=0 na maior parte da Europa, Ásia e África).
2
time.tzname

O atributo time.tzname é um par de strings dependentes de localidade, que são os nomes do fuso horário local sem e com DST, respectivamente.

O calendário Módulo


O módulo de calendário fornece funções relacionadas ao calendário, incluindo funções para imprimir um calendário de texto para um determinado mês ou ano.

Por padrão, o calendário considera segunda-feira como o primeiro dia da semana e domingo como o último. Para mudar isso, chame a função calendar.setfirstweekday().

Aqui está uma lista de funções disponíveis com o calendário módulo -
Nº Sr. Função com descrição
1
calendário.calendário(ano,w=2,l=1,c=6)

Retorna uma string de várias linhas com um calendário para ano ano formatado em três colunas separadas por espaços c. w é a largura em caracteres de cada data; cada linha tem comprimento 21*w+18+2*c. l é o número de linhas para cada semana.
2
calendário.primeiro dia da semana( )

Retorna a configuração atual para o dia da semana que começa a cada semana. Por padrão, quando o calendário é importado pela primeira vez, é 0, significando segunda-feira.
3
calendário.isleap(ano)

Retorna True se ano for bissexto; caso contrário, Falso.
4
calendário.leapdays(y1,y2)

Retorna o número total de dias bissextos nos anos dentro do intervalo (y1,y2).
5
calendário.mês(ano,mês,w=2,l=1)

Retorna uma string de várias linhas com um calendário para mês mês do ano ano, uma linha por semana mais duas linhas de cabeçalho. w é a largura em caracteres de cada data; cada linha tem comprimento 7*w+6. l é o número de linhas para cada semana.
6
calendário.mêscalendário(ano,mês)

Retorna uma lista de listas de ints. Cada sublista denota uma semana. Dias fora do mês mês do ano ano são definidos como 0; dias dentro do mês são definidos para seu dia do mês, 1 e acima.
7
calendário.mêsintervalo(ano,mês)

Retorna dois inteiros. O primeiro é o código do dia da semana para o primeiro dia do mês mês no ano ano; o segundo é o número de dias no mês. Os códigos de dia da semana são 0 (segunda-feira) a 6 (domingo); os números do mês são de 1 a 12.
8
calendário.prcal(ano,w=2,l=1,c=6)

Como imprimir calendar.calendar(ano,w,l,c).
9
calendário.prmês(ano,mês,w=2,l=1)

Como imprimir calendar.mês(ano,mês,w,l).
10
calendar.setfirstweekday(dayday)

Define o primeiro dia de cada semana para o código do dia da semana. Os códigos de dia da semana são de 0 (segunda-feira) a 6 (domingo).
11
calendário.timegm(tupletime)

O inverso de time.gmtime:aceita um instante de tempo na forma de tupla de tempo e retorna o mesmo instante como um número de ponto flutuante de segundos desde a época.
12
calendário.dia da semana(ano,mês,dia)

Retorna o código do dia da semana para a data especificada. Os códigos de dia da semana são 0 (segunda-feira) a 6 (domingo); os números dos meses são de 1 (janeiro) a 12 (dezembro).

Outros módulos e funções


Se você estiver interessado, aqui você encontrará uma lista de outros módulos e funções importantes para brincar com data e hora em Python −

python

  1. Tipos de dados Python
  2. Operadores Python
  3. Instrução de passagem do Python
  4. Argumentos da função Python
  5. Dicionário Python
  6. Data e hora do Python
  7. Como obter data e hora atuais em Python?
  8. Python Obter hora atual
  9. Módulo de tempo Python
  10. Python dormir()