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

Case calquera programa usa o tempo. En Python, desenvolveuse unha biblioteca separada para iso: tempousado para realizar unha variedade de accións con el. Para que funcione, primeiro debe declararse ao comezo do código. Esta liña úsase para iso:

tempo de importación

Consideremos diferentes opcións sobre como usar este módulo correctamente na práctica. 

Determinar o número de segundos desde a época

Para realizar esta tarefa, hai unha función tempo() que non toma parámetros. O seu valor de retorno é cantos segundos pasaron desde o 1 de xaneiro de 1970. En Python, esta vez chámase o inicio dunha época. Polo menos en sistemas operativos da familia Unix.

En canto a Windows, a data é a mesma, pero pode haber problemas con valores negativos anteriores a esta data. 

A zona horaria utilizada é UTC.

tempo de importación

segundos = tempo.tempo()

print("Segundos desde época =", segundos)

A complexidade desta función é que non mostra exactamente a data, senón só o número de segundos. Para converterse ao formato familiar para todos, cómpre utilizar información precisa. Para iso utilízase a función tempo.ctime().

Devolvendo a data, a hora no formato habitual

Para devolver a hora no formato habitual, hai un método tempo.ctime(). Os corchetes indican unha variable ou un número que indica o número de segundos que pasaron desde o inicio da época. Este método devolve todas as características de data e hora, incluíndo a data, o ano, o número de horas, os minutos, os segundos e o día da semana.

Esta función tamén se pode usar sen argumentos. Neste caso, devolve a data, a hora, etc.

Aquí tes un fragmento de código que demostra isto.

tempo de importación

imprimir(time.ctime())

Martes, 23 de outubro, 10:18:23 de 2018

A última liña é o que se imprime na consola onde se está a executar o intérprete de Python. O método formatea automaticamente o número de segundos recibidos nun formulario familiarizado polo usuario. É certo que todos os elementos descritos anteriormente úsanse raramente. Como regra xeral, debes obter só a hora ou só a data de hoxe. Para iso, utilízase unha función separada: strftime(). Pero antes de consideralo, necesitamos analizar a clase tempo.estrutura_tempo.

hora da clase.struct_time

Esta é unha categoría de argumentos que se poden aceptar mediante unha serie de métodos. Non ten opcións. É unha tupla cunha interface nomeada. En pocas palabras, pódese acceder aos elementos desta clase tanto polo seu nome como polo número de índice.

Consta dos seguintes atributos.Módulo de tempo en Python 3. Principais métodos, modelos, exemplos

Atención! A diferenza doutras linguaxes de programación, aquí o mes pode ir de 1 a 12, e non de cero a 11.

Devolver un formato específico

Usando a función strftime() pode obter o ano, o mes, o día, a hora, os minutos e os segundos individualmente e devolvelos a unha cadea de texto. Despois pódese imprimir ao usuario mediante a función imprimir () ou procesados ​​doutro xeito.

Como argumento, unha función pode tomar calquera variable que tome un valor devolto por outras funcións deste módulo. Por exemplo, podes transferirlle a hora local (discutirase máis adiante), da que sacará os datos necesarios.

Aquí está o fragmento de código onde o facemos.

tempo de importación

named_tuple = time.localtime() # obter struct_time

cadea_tempo = tempo.strftime(«%m/%d/%Y, %H:%M:%S», named_tuple)

imprimir(cadea_tempo)

Se executas este código, amosaranse a data e a hora actual. O formato e a secuencia dos elementos pódense cambiar. Son as seguintes:

  1. %Y é o ano.
  2. %m é o mes.
  3. %d - día.
  4. %H - tempo.
  5. %M - minutos.
  6. %S – segundo.

En consecuencia, pode facelo para que a saída sexa exclusivamente do mes e do día. Para iso, simplemente non precisa dar un comando para mostrar o ano. É dicir, escribe na fórmula anterior como argumento %m/%d, e xa está. Ou viceversa, %d/%m. 

De feito, o número de literais de cadea é moito maior. Aquí tes unha táboa onde se describen en detalle.Módulo de tempo en Python 3. Principais métodos, modelos, exemplos

Aprazar un fío durante un determinado número de segundos

Para iso utilízase a función durmir (). Un bloque bastante grande de tarefas de programación está asociado co paso do tempo. Ás veces tes que aprazar o seguinte paso por un tempo determinado. Por exemplo, se precisa interactuar cunha base de datos que leva un tempo determinado en procesarse.

Como argumento, o método usa un valor que expresa o número de segundos para atrasar o seguinte paso do algoritmo.

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

tempo de importación

pausa = 10

print(«Programa iniciado...»)

tempo.durmido(pausa)

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

Como resultado, teremos isto:

O programa comezou...

Pasaron 10 segundos.

Como podemos ver na saída, o programa primeiro informa de que comezou. E despois de dez segundos, ela escribiu que este tempo pasara.

A función permítelle especificar a duración da pausa en milisegundos. Para iso, usamos valores fraccionarios do argumento da función durmir. Por exemplo, 0,1. Isto significa que o atraso será de 100 milisegundos.

Obter hora local

Usando a función localtime(), o programa obtén o número de segundos desde o inicio da época nun fuso horario específico. 

Imos dar un código de exemplo para claridade.

tempo de importación

resultado = time.localtime (1575721830)

print("resultado:", resultado)

print(«nгод:», result.tm_year)

print(«hora_tm:», resultado.hora_tm)

Devolve struct_time en UTC en función do número de segundos desde a época

Esta tarefa conséguese usando o time.gmtime(). método. Será máis claro se poñemos un exemplo.

tempo de importación

resultado = time.gmtime(1575721830)

print("resultado:", resultado)

print(«nгод:», result.tm_year)

print(«hora_tm:», resultado.hora_tm)

Se activas esta secuencia de accións, mostrarase un conxunto de elementos relacionados coa hora, o ano e a zona horaria.

Devolve o número de segundos desde o inicio da época coa conversión automática á hora local

Se te enfrontas a unha tarefa deste tipo, implementarase mediante o método mktime(), que leva struct_time. Despois diso, realiza a acción inversa da función hora local (). É dicir, converte o tempo segundo a zona horaria local no número de segundos que pasaron desde o inicio da época, axustado para a zona horaria.

As funcións mktime() e localtime() están estreitamente entrelazadas. Este fragmento de código demostra isto claramente. Botámoslle unha ollada para comprender máis a fondo como funciona. 

tempo de importación

segundos = 1575721830

# devolve struct_time

t = hora.hora local (segundos)

imprimir(«t1: «, t)

# devolve segundos desde struct_time

s = tempo.mktime(t)

imprimir(«ns:», segundos)

Vemos que a variable segundo ten asignado 1575721830 segundos desde a época. En primeiro lugar, o programa obtén a data exacta, a hora e outros parámetros, en función deste valor, póñeno nunha variable t, e despois converte o seu contido nunha variable s.

Despois diso, abre unha nova liña e mostra o número de segundos na consola. Podes comprobar que será o mesmo número que se asignou á variable segundos.

Data de saída de 9 números que fan referencia a struct_time

Supoñamos que temos 9 números que representan o ano, o mes, a data, o día da semana e unha serie de outros valores, e necesitamos combinalos nunha cadea. Para iso utilízase a función asctime(). Ela acepta ou está lista struct_time, ou calquera outra tupla de 9 valores que represente o mesmo. Despois diso, devólvese unha cadea, que é unha data, hora e outros parámetros. 

É moi cómodo usar este método para traer datos dispares especificados polo usuario nunha única variable..

Por exemplo, pode ser un programa onde o usuario especifique por separado o día, o mes, o ano, o día da semana e outros datos relativos ao rexistro dun evento. Despois diso, a información recibida introdúcese na base de datos e envíase a outra persoa que o solicite.

Obtención de hora e data baseándose na cadea de Python

Supoñamos que o usuario especificou datos dispares e necesitamos combinalos nunha soa liña co formato que a persoa introduciu, e despois facer unha copia noutra variable e reconstruílo nun formato estándar alí. Para iso utilízase a función tempo.strptime().

Leva unha variable na que se especifica este valor e devolve o xa familiar para nós struct_time.

Para máis claridade, escribiremos un programa deste tipo.

tempo de importación

time_string = «15 de xuño de 2019»

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

imprimir (resultado)

Adiviña cal será a saída? Tenta adiviñar sen mirar a liña de fondo. E despois comprobe 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)

Nunha palabra, traballar con datas e horas en Python non é nada difícil. É suficiente con seguir estas instrucións e todo funcionará. Usando a Biblioteca tempo o usuario obtén unha gran cantidade de oportunidades para traballar co tempo, como:

  1. Suspender a execución do programa durante un período de tempo especificado.
  2. Mostra o tempo que pasou desde a época, en segundos. Esta información pódese utilizar para sumar o tempo ou realizar outras operacións matemáticas sobre el.
  3. Converte a un formato conveniente. Ademais, o propio programador pode definir que elementos se mostrarán e en que secuencia. 

Tamén hai outras posibilidades, pero hoxe analizamos as máis básicas. Serán útiles en case calquera programa que dalgún xeito funcione co tempo. Moita sorte.

Deixe unha resposta