Articulo de referencia

Época (informática)

En informática, una época es una fecha y hora fijas que se utilizan como referencia a partir de la cual un ordenador mide la hora del sistema . La mayoría de los sistemas inform...

En informática, una época es una fecha y hora fijas que se utilizan como referencia a partir de la cual un ordenador mide la hora del sistema . La mayoría de los sistemas informáticos determinan la hora como un número que representa los segundos que han transcurrido desde una fecha y hora arbitraria determinada. Por ejemplo, Unix y POSIX miden la hora como el número de segundos que han pasado desde el jueves 1 de enero de 1970 a las 00:00:00 UT , un punto en el tiempo conocido como la época Unix . El lenguaje de programación C# y los sistemas Windows NT hasta Windows 11 y Windows Server 2022 inclusive miden la hora como el número de intervalos de 100 nanosegundos que han pasado desde las 00:00:00  UTC del 1  de enero de los años 1 d. C.  y 1601 d. C.  , respectivamente, lo que convierte a esos puntos en las épocas para esos sistemas. [ 1 ] [ 2 ] Las épocas informáticas casi siempre se especifican como la medianoche, hora universal , de alguna fecha determinada.

Resolución y representación

Los sistemas de cronometraje por software varían considerablemente en la resolución de la medición del tiempo; algunos sistemas pueden usar unidades de tiempo de hasta un día, mientras que otros pueden usar nanosegundos . Por ejemplo, para una fecha de referencia de medianoche UTC (00:00) del 1 de enero de 1900, y una unidad de tiempo de un segundo, la hora de la medianoche (24:00) entre el 1 y el 2 de enero de 1900 se representa con el número 86400, que es el número de segundos en un día. Cuando se necesita representar tiempos anteriores a la fecha de referencia, es común usar el mismo sistema, pero con números negativos.

Esta representación del tiempo se utiliza principalmente de forma interna. En sistemas donde la fecha y la hora son importantes para el ser humano, el software casi siempre convertirá este número interno en una fecha y hora que representen un calendario humano.

Problemas

Generalmente, las computadoras no almacenan números arbitrariamente grandes. En cambio, a cada número almacenado se le asigna una cantidad fija de espacio. Por lo tanto, cuando la cantidad de unidades de tiempo transcurridas desde la época del sistema excede el número máximo que cabe en el espacio asignado a la representación del tiempo, esta se desborda y pueden surgir problemas. Si bien el comportamiento del sistema después de un desbordamiento no es necesariamente predecible, en la mayoría de los sistemas, el número que representa el tiempo se reinicia a cero y el sistema informático vuelve a considerar que la hora actual es la época.

El ejemplo más conocido es el problema del año 2000 , en sistemas antiguos que contaban el tiempo como el número de años transcurridos desde el 1 de enero de 1900 y que solo disponían de espacio suficiente para almacenar los números del 0 al 99. Estos sistemas, si no se corregían previamente, interpretaban la fecha del 1 de enero de 2000 como el 1 de enero de 1900, lo que provocaba errores impredecibles al comienzo del año 2000.

Incluso los sistemas que asignan más espacio de almacenamiento a la representación del tiempo no son inmunes a este tipo de error. Muchos sistemas operativos tipo Unix que registran el tiempo en segundos transcurridos desde la fecha de referencia del 1 de enero de 1970 y asignan suficiente espacio de almacenamiento para guardar números tan grandes como 2 147 483 647 experimentarán un problema de desbordamiento el 19 de enero de 2038. Esto se conoce como el problema del año 2038 .

En informática existen otros problemas de sincronización más sutiles, como el cálculo de los segundos intercalares , que no se observan con ninguna previsibilidad ni regularidad. Además, las aplicaciones que necesitan representar fechas y horas históricas (por ejemplo, una fecha anterior al cambio del calendario juliano al gregoriano ) deben utilizar bibliotecas de sincronización especializadas .

Finalmente, algunos programas deben mantener la compatibilidad con programas más antiguos que no siguen estrictamente los sistemas de cronometraje tradicionales. Por ejemplo, Microsoft Excel utiliza la fecha ficticia del 29 de febrero de 1900 para mantener la compatibilidad con versiones anteriores de Lotus 1-2-3 . [ 3 ] Lotus 1-2-3 utilizaba esa fecha debido a un error; cuando se descubrió, ya era demasiado tarde para corregirlo: «un cambio ahora alteraría las fórmulas que se escribieron para adaptarse a esta anomalía». [ 4 ]

En los sistemas de tiempo basados ​​en satélites

Existen al menos seis sistemas de navegación por satélite , todos los cuales funcionan transmitiendo señales horarias . De los dos únicos sistemas de satélite con cobertura global, el GPS calcula su señal horaria a partir de una época, mientras que el GLONASS la calcula como un desfase respecto a UTC , ajustando la entrada UTC para los segundos intercalares . De los otros dos sistemas que buscan cobertura global, Galileo calcula a partir de una época y BeiDou a partir de UTC sin ajuste para los segundos intercalares. [ 5 ]El GPS también transmite la diferencia horaria entre la hora UTC y la hora GPS, y debe actualizar esta diferencia cada vez que hay un segundo intercalar , lo que requiere que los dispositivos receptores GPS gestionen la actualización correctamente. En cambio, los segundos intercalares son transparentes para los usuarios de GLONASS. La Agencia Espacial Europea explica las complejidades del cálculo de UTC a partir de una época en la documentación de Galileo, en el apartado «Ecuaciones para corregir la escala de tiempo del sistema a la escala de tiempo de referencia». [ 6 ]

Fechas de época notables en la informática

La siguiente tabla enumera las fechas de época utilizadas por software popular y otros sistemas informáticos. En estos sistemas, el tiempo se almacena como la cantidad de una unidad de tiempo específica (días, segundos, nanosegundos, etc.) que ha transcurrido desde una hora determinada (generalmente la medianoche UTC al comienzo de la fecha indicada).

Véase también

Notas

  1. 1 2 Calendario gregoriano proléptico .
  2. AmigaOS mide el tiempo en segundos y lo almacena en un entero con signo de 32 bits. Después del 19 de enero de 2046 a las 03:14:07, la fecha será negativa. La última versión del sistema operativo, la 4.1 (2016), no incluye ninguna solución para este problema.
  3. Tenga en cuenta que la función Epoch devuelve la época Unix SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '1970-01-01 00:00:00-00'); devuelve 0.

Referencias

  1. " [ MS-DTYP ] : FILETIME" . Microsoft Docs . 2020-03-30.
  2. 1 2 "Clase GregorianCalendar (System.Globalization)" . Microsoft Learn . Observaciones . Consultado el 27 de enero de 2026 .
  3. 1 2 3 Spolsky, Joel (19 de febrero de 2008). "¿Por qué son tan complicados los formatos de archivo de Microsoft Office? (Y algunas soluciones alternativas)" . Recuperado el 8 de marzo de 2009 .
  4. Dershowitz, Nachum ; Reingold, Edward (2008). Cálculos calendáricos (3.ª ed.). Cambridge University Press . págs. xxi, xxvi. ISBN   978-0-521-70238-6.
  5. Subirana, J. Sanz; Zornoza, JM Juan; Hernández-Pajares, M. (2011). «Referencias horarias en GNSS» . gssc.esa.int/navipedia . Agencia Espacial Europea.
  6. "Descripción de la escala de tiempo GNSS Galileo" (PDF) . Oficina de las Naciones Unidas para Asuntos del Espacio Ultraterrestre. 2016. Sección 5d.
  7. "datenum - (No recomendado; use datetime o duration) Convierte fecha y hora en número de fecha serial" . MathWorks . Consultado el 27 de enero de 2026 .
  8. "Estructura DateTimeOffset (Sistema)" . Microsoft Learn .
  9. "Tiempo de paquete" . golang.org . Consultado el 26 de abril de 2015 .
  10. "Fecha" . Referencia de z/OS TSO/E REXX . IBM.
  11. Dershowitz, Nachum ; Reingold, Edward (2008). «El calendario gregoriano». Cálculos calendáricos (3.ª ed.). Cambridge University Press. ISBN  978-0-521-70238-6.
  12. Cowlishaw, Mike Frederic (1990). El lenguaje Rexx: Un enfoque práctico de la programación (2.ª ed.). Prentice Hall. págs. 93, 177. ISBN   0-13-780651-5.
  13. "Notas de la versión 1 de Go: cambios importantes en la biblioteca: tiempo" . golang.org. 28 de marzo de 2012. Consultado el 26 de abril de 2015 .
  14. "Formatos de fecha y hora" . IBM.com . IBM . Consultado el 27 de enero de 2026 .
  15. "CEEDATM: Convierte segundos a marca de tiempo de caracteres" . Referencia de programación del entorno de lenguaje z/OS . IBM . 22 de marzo de 2021.
  16. Guía de programación COBOL para AIX Versión 5.1 (PDF) (Primera ed.). IBM . Junio ​​de 2015. CEEDATE: convierte la fecha Lilian a formato de caracteres. SC27-5404-00. 
  17. Leach, P.; Mealling, M.; Salz, R. (julio de 2005). "RFC 4122: Estándar propuesto: Un espacio de nombres URN de identificador único universal (UUID)" . tools.ietf.org . Grupo de trabajo de ingeniería de Internet.
  18. ISO/IEC 1989:2014 - Tecnología de la información — Lenguajes de programación, sus entornos e interfaces de software de sistema — Lenguaje de programación COBOL . ISO . 1 de junio de 2014. pág. 634. 
  19. 1 2 Chen, Raymond (06-03-2009). "¿Por qué la época de Win32 es el 1 de enero de 1601?" . The Old New Thing . Blogs de MSDN.
  20. "Estructura FILETIME (minwinbase.h)" . Documentación de Microsoft .
  21. "¿Qué pasó en 1841?" . Preguntas frecuentes sobre tecnología y lenguaje MUMPS, parte 1/2 . Archivado del original el 28-08-2015 . Consultado el 14-08-2015 .
  22. Manual de TENEX JSYS (PDF) . BBN . ​​1 de septiembre de 1973. pág. 7. 
  23. Winkler, Gernot MR "Fecha juliana modificada" . Observatorio Naval de EE. UU . Archivado del original el 14 de febrero de 2013. Consultado el 29 de enero de 2015 .
  24. «Origen del tiempo base VMS» . vms.tuwien.ac.at/info/humour . Universidad Técnica de Viena. Archivado desde el original el 6 de junio de 2007.
  25. "Introducción a la API de Google Sheets" . Google Developers .
  26. "Número del día internacional" . help.dyalog.com . Consultado el 27 de noviembre de 2018 .
  27. "Gestión del tiempo" . Microsoft Learn .
  28. "¿Cuál es la historia detrás del 30 de diciembre de 1899 como fecha base?" . social.msdn.microsoft.com .
  29. Referencia de la API de CICS Transaction Server para z/OS 5.6 (PDF) . IBM. págs. 38, 97, 186, 241, 259. 
  30. Guía de programación de aplicaciones CICS para iSeries, versión 5 (PDF) . IBM. págs. 327,362. SC41-5454-02. 
  31. Referencia de programación de aplicaciones CICS Versión 5.0 (PDF) . IBM. págs. 37, 104. SC09-4461-02. 
  32. 1 2 John Barnes . "7.3 Horas y fechas" . Fundamento de Ada 2005. Asociación de Recursos de Ada.
  33. "Fechas y horas en Excel" . cpearson.com .
  34. " MacTech – La revista de tecnología de Apple" . mactech.com
  35. "Introducción a las fechas y horas en SAS" (PDF) .
  36. Mark Pick, Conferencia Internacional sobre el Espectro, abril de 2010.
  37. "time_t – Referencia de C++" . Consultado el 6 de abril de 2015 .
  38. Barthel, Olaf (septiembre de 1998). "Archivo: El problema del año 2000 y la Amiga" . amiga.de .
  39. Levine, Judah (5 de julio de 2002). "Distribución de tiempo y frecuencia usando satélites" (PDF) . Reports on Progress in Physics . 65 (8): 1119. Bibcode : 2002RPPh...65.1119L . doi : 10.1088/0034-4885/65/8/201 vía Instituto Nacional de Estándares y Tecnología (NIST).
  40. "Sistemas de tiempo y fechas – Hora GPS" . Departamento de Oceanografía, NPS . Escuela Naval de Posgrado, Departamento de Oceanografía. Archivado del original el 2 de enero de 2019. Consultado el 18 de febrero de 2019 .
  41. "FIT SDK - Trabajar con valores de fecha y hora" . garmin.com. 1 de enero de 2023. Consultado el 25 de febrero de 2023 .
  42. "Transferencia de datos flexible e interoperable - Protocolo FIT" . garmin.com. 1 de marzo de 2019. Consultado el 25 de febrero de 2023 .
  43. "Nota del desarrollador sobre los formatos AppleSingle/AppleDouble para archivos extranjeros" (PDF) . Archivado del original (PDF) el 17 de julio de 2011. Consultado el 23 de octubre de 2007 .
  44. "Documentación de PostgreSQL 9.1.24. Capítulo 8: Tipos de datos. 8.5. Tipos de fecha/hora" . PostgreSQL.org . 27/10/2016. Nota: Cuando los valores de marca de tiempo se almacenan como enteros de ocho bytes (actualmente el valor predeterminado), la precisión de microsegundos está disponible en todo el rango de valores. […] Los valores de marca de tiempo se almacenan como segundos antes o después de la medianoche del 1 de enero de 2000.
  45. "Especificación de la biblioteca de clúster ZigBee" . Sección 2.5.2.21 UTCTime.
  46. NASA JPL [@NASAJPL] (04-05-2021). "La Fuerza es fuerte en este pequeño" ( Tweet ) vía Twitter .
  47. "Otra documentación más de Gamecube" . www.gc-forever.com . Consultado el 30 de junio de 2025 .
  48. ^ "NeoGPS/src/NeoTime.cpp en master · SlashDevin/NeoGPS" . GitHub . Consultado el 5 de noviembre de 2023 .
  • Fechas críticas y significativas (JR Stockton), una extensa lista de fechas que resultan problemáticas para diversos sistemas operativos y dispositivos informáticos.
  • Fechas de posibles problemas para ordenadores (pdf) Una lista de fechas de posibles problemas para ordenadores y software desde 2001 hasta 2100 (IET).
Obtenido de " https://en.wikipedia.org/w/index.php?title=Epoch_(computing)&oldid=1362982834 "