Módulo de tempo em Python 3. Principais métodos, modelos, exemplos

Quase qualquer programa usa o tempo. Em Python, uma biblioteca separada foi desenvolvida para isso – tempousado para executar uma variedade de ações com ele. Para fazê-lo funcionar, ele deve primeiro ser declarado no início do código. Esta linha é usada para isso:

tempo de importação

Vamos considerar diferentes opções sobre como usar este módulo corretamente na prática. 

Determinando o número de segundos desde a época

Para realizar esta tarefa, existe uma função tempo() que não recebe parâmetros. Seu valor de retorno é quantos segundos se passaram desde 1º de janeiro de 1970. Em Python, esse tempo é chamado de início de uma época. Pelo menos em sistemas operacionais da família Unix.

Quanto ao Windows, a data é a mesma, mas pode haver problemas com valores negativos que foram anteriores a esta data. 

O fuso horário usado é UTC.

tempo de importação

segundos = tempo.tempo()

print(“Segundos desde a época =”, segundos)

A complexidade dessa função é que ela não exibe exatamente a data, mas apenas o número de segundos. Para converter para o formato familiar a todos, você precisa usar informações precisas. Para isso, utiliza-se a função hora.ctime().

Retornando a data, hora no formato usual

Para retornar a hora no formato usual, existe um método hora.ctime(). Os colchetes indicam uma variável ou um número que indica o número de segundos que se passaram desde o início da época. Este método retorna todas as características de data e hora, incluindo data, ano, número de horas, minutos, segundos e dia da semana.

Esta função também pode ser usada sem argumentos. Nesse caso, ele retorna a data, hora e assim por diante atuais.

Aqui está um trecho de código que demonstra isso.

tempo de importação

print(hora.ctime())

Ter, 23 de outubro 10:18:23 2018

A última linha é o que é impresso no console onde o interpretador Python está sendo executado. O método formata automaticamente o número de segundos recebido em um formato familiar ao usuário. É verdade que todos os elementos descritos acima raramente são usados. Como regra, você precisa obter apenas a hora ou apenas a data de hoje. Para isso, uma função separada é usada - strftime(). Mas antes de considerarmos isso, precisamos analisar a classe tempo.struct_time.

hora da aula.struct_time

Esta é uma categoria de argumentos que podem ser aceitos por uma variedade de métodos. Não tem opções. É uma tupla com uma interface nomeada. Simplificando, os elementos desta classe podem ser acessados ​​tanto por nome quanto por número de índice.

Ele consiste nos seguintes atributos.Módulo de tempo em Python 3. Principais métodos, modelos, exemplos

Atenção! Ao contrário de várias outras linguagens de programação, aqui o mês pode variar de 1 a 12, e não de zero a 11.

Retornando um formato específico

Usando a função strftime () você pode obter o ano, mês, dia, hora, minutos, segundos individualmente e retorná-los a uma string de texto. Em seguida, pode ser impresso para o usuário usando a função imprimir () ou processado de outra forma.

Como argumento, uma função pode receber qualquer variável que receba um valor retornado por outras funções deste módulo. Por exemplo, você pode transferir a hora local para ele (será discutido mais tarde), do qual extrairá os dados necessários.

Aqui está o trecho de código onde fazemos isso.

tempo de importação

named_tuple = time.localtime() # obtém struct_time

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», tupla_nomeada)

imprimir(time_string)

Se você executar este código, a data e hora atuais serão exibidas. O formato e a sequência dos elementos podem ser alterados. Eles são os seguintes:

  1. %Y é o ano.
  2. %m é o mês.
  3. %d – dia.
  4. %H – hora.
  5. %M – minutos.
  6. %S – segundo.

Assim, você pode fazer com que a saída seja exclusivamente do mês e do dia. Para fazer isso, você simplesmente não precisa dar um comando para exibir o ano. Ou seja, escreva na fórmula acima como um argumento %m/%d, e pronto. Ou vice-versa, %d/%m. 

Na verdade, o número de literais de string é muito maior. Aqui está uma tabela onde eles são descritos em detalhes.Módulo de tempo em Python 3. Principais métodos, modelos, exemplos

Adiar um tópico por um certo número de segundos

Para isso, utiliza-se a função dorme (). Um bloco bastante grande de tarefas de programação está associado à passagem do tempo. Às vezes você tem que adiar o próximo passo por um certo tempo. Por exemplo, se você precisar interagir com um banco de dados que leva um certo tempo para processar.

Como argumento, o método usa um valor que expressa o número de segundos para atrasar a próxima etapa do algoritmo.

Por exemplo, neste snippet, o atraso é de 10 segundos.

tempo de importação

pausa = 10

print(«Programa iniciado…»)

hora.dormir(pausa)

print(str(pausa) + » segundos passados.»)

Como resultado, obteremos isso:

Programa iniciado…

10 segundos se passaram.

Como podemos ver na saída, o programa primeiro informa que foi iniciado. E depois de dez segundos, ela escreveu que esse tempo havia passado.

A função permite especificar a duração da pausa em milissegundos. Para fazer isso, usamos valores fracionários do argumento da função dormir. Por exemplo, 0,1. Isso significa que o atraso será de 100 milissegundos.

Obter hora local

Usando a função localtime(), o programa obtém o número de segundos desde o início da época em um fuso horário específico. 

Vamos dar um exemplo de código para maior clareza.

tempo de importação

resultado = time.localtime(1575721830)

print(“resultado:”, resultado)

print(«nгод:», resultado.tm_ano)

print(«tm_hora:», resultado.tm_hora)

Retorna struct_time em UTC com base no número de segundos desde a época

Esta tarefa é realizada usando o time.gmtime(). método. Ficará mais claro se dermos um exemplo.

tempo de importação

resultado = time.gmtime(1575721830)

print(“resultado:”, resultado)

print(«nгод:», resultado.tm_ano)

print(«tm_hora:», resultado.tm_hora)

Se você ativar essa sequência de ações, será exibido um conjunto de elementos relacionados à hora, ano e fuso horário.

Retorna o número de segundos desde o início da época com conversão automática para hora local

Se você se deparar com tal tarefa, ela é implementada usando o método mktime ()que leva struct_time. Depois disso, ele executa a ação inversa da função horário local(). Ou seja, converte a hora de acordo com o fuso horário local no número de segundos que se passaram desde o início da época, ajustado para o fuso horário.

As funções mktime() e localtime() estão intimamente interligadas. Este trecho de código demonstra isso claramente. Vamos dar uma olhada nele para entender mais profundamente como ele funciona. 

tempo de importação

segundos = 1575721830

# retorna struct_time

t = hora.localtime(segundos)

imprimir(«t1: «,t)

# retorna segundos de struct_time

s = tempo.mktime(t)

print(«ns:», segundos)

Vemos que a variável segundo foi atribuído 1575721830 segundos desde a época. Primeiro, o programa pega a data exata, hora e outros parâmetros, com base nesse valor, coloca em uma variável t, e então converte seu conteúdo em uma variável s.

Depois disso, bate uma nova linha e exibe o número de segundos no console. Você pode verificar que será o mesmo número que foi atribuído à variável segundos.

Data de saída de 9 números que se referem a struct_time

Suponha que temos 9 números representando o ano, mês, data, dia da semana e vários outros valores, e precisamos combiná-los em uma string. Para isso, utiliza-se a função asctime(). Ela aceita ou pronto struct_time, ou qualquer outra tupla de 9 valores que represente o mesmo. Depois disso, uma string é retornada, que é uma data, hora e vários outros parâmetros. 

É muito conveniente usar esse método para trazer dados díspares especificados pelo usuário em uma única variável..

Por exemplo, pode ser um programa onde o usuário especifica separadamente o dia, mês, ano, dia da semana e outros dados referentes à inscrição em um evento. Depois disso, as informações recebidas são inseridas no banco de dados e enviadas para outra pessoa que as solicita.

Obtendo hora e data com base na string Python

Suponha que o usuário tenha especificado dados diferentes e precisamos combiná-los em uma linha no formato que a pessoa inseriu e, em seguida, fazer uma cópia para outra variável e reconstruí-la em um formato padrão. Para isso, utiliza-se a função tempo.strptime().

Ele pega uma variável na qual esse valor é especificado e retorna o já familiar para nós struct_time.

Para maior clareza, escreveremos tal programa.

tempo de importação

time_string = «15 de junho de 2019»

resultado = time.strptime(time_string, «%d %B, %Y»)

imprimir (resultado)

Adivinha qual será a saída? Tente adivinhar sem olhar para a linha de fundo. E depois verifique a resposta.

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)

Em uma palavra, trabalhar com datas e horas em Python não é nada difícil. Basta seguir estas instruções e tudo dará certo. Usando a Biblioteca tempo o usuário obtém um grande número de oportunidades para trabalhar com o tempo, como:

  1. Suspenda a execução do programa por um período de tempo especificado.
  2. Mostre o tempo decorrido desde a época, em segundos. Essas informações podem ser usadas para somar o tempo ou realizar outras operações matemáticas sobre ele.
  3. Converta para um formato conveniente. Além disso, o próprio programador pode definir quais elementos serão exibidos e em qual sequência. 

Há também uma série de outras possibilidades, mas hoje analisamos as mais básicas. Eles serão úteis em quase qualquer programa que de alguma forma funcione com o tempo. Boa sorte.

Deixe um comentário