Contidos
- Determinar o número de segundos desde a época
- Devolvendo a data, a hora no formato habitual
- hora da clase.struct_time
- Devolver un formato específico
- Aprazar un fío durante un determinado número de segundos
- Obter hora local
- Devolve struct_time en UTC en función do número de segundos desde a época
- Devolve o número de segundos desde o inicio da época coa conversión automática á hora local
- Data de saída de 9 números que fan referencia a struct_time
- Obtención de hora e data baseándose na cadea de Python
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.
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:
- %Y é o ano.
- %m é o mes.
- %d - día.
- %H - tempo.
- %M - minutos.
- %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.
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:
- Suspender a execución do programa durante un período de tempo especificado.
- 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.
- 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.