stringtranslate.com

Época (informática)

En informática, una época es una fecha y hora fijas que se utilizan como referencia a partir de las cuales un ordenador mide el tiempo del sistema . La mayoría de los sistemas informáticos determinan el tiempo como un número que representa los segundos que han transcurrido desde una fecha y hora arbitrarias particulares. Por ejemplo, Unix y POSIX miden el tiempo como la cantidad 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 de Unix . Los sistemas Windows NT , hasta Windows 11 y Windows Server 2022 incluidos , miden el tiempo como la cantidad de intervalos de 100 nanosegundos que han pasado desde el 1 de enero de 1601 a las 00:00:00 UTC, lo que convierte a ese punto en el tiempo en la época para esos sistemas. [1] Las épocas informáticas casi siempre se especifican como la medianoche del Tiempo Universal en alguna fecha en particular.

Resolución y representación

Los sistemas de cronometraje por software varían ampliamente en la resolución de la medición del tiempo; algunos sistemas pueden utilizar unidades de tiempo tan grandes como un día, mientras que otros pueden utilizar nanosegundos . Por ejemplo, para una fecha de época 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 de enero de 1900 y el 2 de enero de 1900 se representa con el número 86400, el número de segundos de un día. Cuando es necesario representar horas anteriores a la época, es habitual utilizar el mismo sistema, pero con números negativos.

Esta representación del tiempo se utiliza principalmente para uso interno. En sistemas en los que la fecha y la hora son importantes en el sentido humano, el software casi siempre convertirá este número interno en una fecha y hora que represente un calendario humano.

Problemas

Por lo general, las computadoras no almacenan números arbitrariamente grandes. En cambio, a cada número almacenado por una computadora se le asigna una cantidad fija de espacio. Por lo tanto, cuando la cantidad de unidades de tiempo que han transcurrido desde la época de un sistema excede el número más grande que puede caber en el espacio asignado a la representación del tiempo, la representación del tiempo se desborda y pueden ocurrir problemas. Si bien el comportamiento de un sistema después de que se produce un desbordamiento no es necesariamente predecible, en la mayoría de los sistemas el número que representa el tiempo se restablecerá a cero y el sistema informático pensará que el tiempo actual es el tiempo de la época nuevamente.

El problema del año 2000 fue el más conocido de los problemas que se dieron con los sistemas antiguos, que contaban el tiempo según el número de años transcurridos desde el 1 de enero de 1900 y que solo contaban con espacio suficiente para almacenar los números del 0 al 99. Estos sistemas (si no se corrigían de antemano) interpretarían la fecha del 1 de enero de 2000 como el 1 de enero de 1900, lo que daría lugar a 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 época del 1 de enero de 1970 y asignan suficiente espacio de almacenamiento para almacenar 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 .

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

Por último, algunos programas deben mantener la compatibilidad con programas más antiguos que no registran el tiempo en estricta conformidad con los sistemas tradicionales de cronometraje. Por ejemplo, Microsoft Excel observa la fecha ficticia del 29 de febrero de 1900 para mantener la compatibilidad con versiones anteriores de Lotus 1-2-3 . [2] Lotus 1-2-3 observaba la fecha debido a un error; cuando se descubrió el error, ya era demasiado tarde para solucionarlo: "un cambio ahora alteraría las fórmulas que se escribieron para dar cabida a esta anomalía". [3]

En sistemas de tiempo basados ​​en satélites

Existen al menos seis sistemas de navegación por satélite , todos los cuales funcionan mediante la transmisión de 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 calcula la hora como una diferencia con respecto a la UTC , con la entrada UTC ajustada para los segundos intercalares . De los otros dos únicos sistemas que apuntan a la cobertura global, Galileo calcula a partir de una época y BeiDou calcula a partir de la UTC sin ajustes para los segundos intercalares. [4] [¿ Necesita actualización? ] El GPS también transmite la diferencia 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. Por el contrario, los segundos intercalares son transparentes para los usuarios del GLONASS. La complejidad de calcular la UTC a partir de una época se explica por la Agencia Espacial Europea en la documentación de Galileo en "Ecuaciones para corregir la escala de tiempo del sistema a la escala de tiempo de referencia". [5]

Fechas de épocas notables en la informática

La siguiente tabla muestra las fechas de época que utilizan los programas informáticos más populares y otros sistemas relacionados con la informática. En estos sistemas, el tiempo se almacena como la cantidad de una unidad de tiempo determinada (días, segundos, nanosegundos, etc.) que ha transcurrido desde una hora determinada (normalmente la medianoche UTC del comienzo de la fecha dada).

Véase también

Notas

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

Referencias

  1. ^ "[MS-DTYP]: FILETIME". Documentos de Microsoft . 30 de marzo de 2020.
  2. ^ abc Spolsky, Joel (19 de febrero de 2008). "¿Por qué son tan complicados los formatos de archivo de Microsoft Office? (Y algunas soluciones alternativas)" . Consultado el 8 de marzo de 2009 .
  3. ^ Dershowitz, Nachum ; Reingold, Edward (2008). Cálculos calendáricos (3.ª ed.). Cambridge University Press . págs. xxi, xxvi. ISBN 978-0-521-70238-6.
  4. ^ Subirana, J. Sanz; Zornoza, JM Juan; Hernández-Pajares, M. (2011). "Referencias horarias en GNSS". gssc.esa.int/navipedia . Agencia Espacial Europea.
  5. ^ "Descripción de la escala de tiempo del GNSS Galileo" (PDF) . Oficina de las Naciones Unidas para Asuntos del Espacio Ultraterrestre. 2016. Sección 5d.
  6. ^ "datenum", MathWorks, consultado el 7 de julio de 2015.
  7. ^ "Clase GregorianaCalendar". MSDN . Observaciones . Consultado el 26 de abril de 2015 .
  8. ^ "Estructura DateTimeOffset" (.NET Framework 4.5), MSDN , 2015.
  9. ^ "Tiempo de empaquetado". golang.org . Consultado el 26 de abril de 2015 .
  10. ^ "Fecha: referencia de z/OS TSO/E REXX". IBM.com . IBM. 2014. SA32-0972-00.
  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.ª edición). Prentice Hall. pp. 93, 177. ISBN 0-13-780651-5.
  13. ^ "Notas de la versión de Go 1: cambios importantes en la biblioteca: fecha". 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 24 de enero de 2020 .
  15. ^ "CEEDATM: convertir segundos en marcas de tiempo de caracteres". Referencia de programación del entorno de lenguaje z/OS . IBM . 2021-03-22.
  16. ^ Guía de programación de COBOL para AIX versión 5.1 (PDF) (Primera edición). IBM . Junio ​​de 2015. CEEDATE: convierte la fecha Lilian al formato de caracteres. SC27-5404-00.
  17. ^ Leach, P.; Mealling, M.; Salz, R. (julio de 2005). "RFC 4122: Propuesta de estándar: 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 . 2014-06-01. p. 634.
  19. ^ ab Chen, Raymond (6 de marzo de 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)". Microsoft Docs .
  21. ^ "¿Qué pasó en 1841?". Preguntas frecuentes sobre tecnología y lenguaje MUMPS, parte 1/2 . Archivado desde el original el 28 de agosto de 2015. Consultado el 14 de agosto de 2015 .
  22. ^ Winkler, Gernot MR "Fecha juliana modificada". Observatorio Naval de los Estados Unidos . Archivado desde el original el 14 de febrero de 2013. Consultado el 29 de enero de 2015 .
  23. ^ "Origen del tiempo base de VMS". vms.tuwien.ac.at/info/humour . Universidad Técnica de Viena. Archivado desde el original el 6 de junio de 2007.
  24. ^ "Introducción a la API de Hojas de cálculo de Google". Desarrolladores de Google .
  25. ^ "Número del Día Internacional". help.dyalog.com . Consultado el 27 de noviembre de 2018 .
  26. ^ "Gestión del tiempo". msdn.microsoft.com .
  27. ^ "¿Cuál es la historia detrás del 30 de diciembre de 1899 como fecha base?". social.msdn.microsoft.com .[ enlace muerto permanente ]
  28. ^ de John Barnes . "7.3 Horarios y fechas". Fundamento de Ada 2005. Asociación de Recursos de Ada.
  29. ^ "Fechas y horas en Excel". cpearson.com .
  30. ^ "MacTech – La revista de tecnología de Apple". mactech.com .
  31. ^ "Introducción a fechas y horas en SAS" (PDF) .
  32. ^ Mark Pick, Conferencia Internacional del Espectro, abril de 2010.
  33. ^ "time_t – Referencia de C++" . Consultado el 6 de abril de 2015 .
  34. ^ Barthel, Olaf (septiembre de 1998). "Archivo: El problema del año 2000 y el Amiga". amiga.de .
  35. ^ Levine, Judah (5 de julio de 2002). "Distribución de tiempo y frecuencia mediante satélites" (PDF) . Informes sobre el progreso en física . 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).
  36. ^ "Sistemas de tiempo y fechas: tiempo GPS". Departamento de Oceanografía, NPS . Escuela Naval de Postgrado, Departamento de Oceanografía. Archivado desde el original el 2 de enero de 2019. Consultado el 18 de febrero de 2019 .
  37. ^ "FIT SDK: cómo trabajar con valores de fecha y hora". garmin.com. 2023-01-01 . Consultado el 2023-02-25 .
  38. ^ "Transferencia de datos flexible e interoperable: protocolo FIT". garmin.com. 2019-03-01 . Consultado el 2023-02-25 .
  39. ^ "Nota del desarrollador sobre los formatos AppleSingle/AppleDouble para archivos externos" (PDF) . Archivado desde el original (PDF) el 2011-07-17 . Consultado el 2007-10-23 .
  40. ^ "Documentación de PostgreSQL 9.1.24. Capítulo 8: Tipos de datos. 8.5. Tipos de fecha y hora". PostgreSQL.org . 2016-10-27. Nota: Cuando los valores de marca de tiempo se almacenan como números 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 01-01-2000.
  41. ^ "Especificación de la biblioteca de clúster ZigBee". Sección 2.5.2.21 UTCTime.
  42. ^ NASA JPL [@NASAJPL] (4 de mayo de 2021). "La Fuerza es intensa con este pequeño" ( Tweet ) – vía Twitter .
  43. ^ "NeoGPS/src/NeoTime.cpp en master · SlashDevin/NeoGPS". GitHub . Consultado el 5 de noviembre de 2023 .

Enlaces externos