- Time t
-
El tipo de dato time_t es un tipo de dato de la biblioteca ISO-C definido para el almacenamiento de valores de tiempo del sistema. Estos valores se devuelven desde la función
time()
de la biblioteca estándar. Este tipo es un typedef definido en la cabecera <time.h> . ISO-C define time_t como un tipo aritmético, pero no especifica ningun rango, resolución, o codificación en particular de la misma. Tampoco especifica los significados de las operaciones aritméticas aplicadas a los valores de tiempo.Contenido
Implementación
Unix y los sistemas compatibles con POSIX, implementan time_t como un entero o real de coma flotante.[1] (generalmente entero de 32 o 64 bits), que representa el número de segundos desde el inicio del tiempo Unix: la medianoche del 1 de enero de 1970 UTC (sin contar los segundos intercalares). Algunos sistemas manejan correctamente los valores negativos, mientras que otros no lo hacen. Los sistemas que utilizan un tipo time_t entero de 32 bits son susceptibles a los problemas del año 2038.[2]
Además de la función time(), ISO-C también especifica otras funciones y tipos de conversión de sistema de valores de tiempo time_t en los tiempos del calendario y viceversa.
Ejemplo
El siguiente código en C devuelve la hora actual, le da formato de cadena, y lo escribe en la salida estándar.
#include <stdio.h> #include <time.h> /* * El resultado debe ser algo así como * Fri 2008-08-22 15:21:59 WAST */ int main(void) { time_t now; struct tm *ts; char buf[80]; /* Obtener la hora actual */ now = time(0); /* Formatear e imprimir el tiempo, "ddd yyyy-mm-dd hh:mm:ss zzz" */ ts = localtime(&now); strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", ts); printf("%s\n", buf); return 0; }
La conversión a la hora civil
Usando GNU date, un valor dado
time_t
se puede convertir en su equivalente en la fecha del calendario:$ date -ud@1234567890 Fri Feb 13 23:31:30 UTC 2009
Del mismo modo, usando BSD date:
$ date -ur 1234567890 Fri Feb 13 23:31:30 UTC 2009
Véase también
- Biblioteca estándar de C
- Reloj de tiempo real
- Tiempo de sistema
- tiempo Unix
- Problema del año 2038
Referencias
- ↑ The Open Group Base Specifications Issue 7 sys/types.h. Retrieved on 2009-02-13.
- ↑ The Year 2038 problem, Roger M. Wilcox. Retrieved on 2011-03-11.
- Este artículo fue creado a partir de la traducción del artículo time_t de la Wikipedia en inglés, bajo licencia Creative Commons Atribución Compartir Igual 3.0 y GFDL.
Categorías:- Unix
- Escalas de tiempo
Wikimedia foundation. 2010.