Marca de temps Epoch (Unix Time): Què és?
Els orígens del temps Unix
Per comprendre verament la marca de temps Epoch, sovint anomenada Unix Time, POSIX Time, o simplement Epoch, hem de mirar enrere als orígens del sistema operatiu Unix als anys 70. Unix Time és un sistema per rastrejar el temps com un total continu de segons. Específicament, representa el nombre de segons que han transcorregut des de l'Epoch de Unix. L'Epoch mateix es defineix com 00:00:00 Temps Universal Coordinat (UTC) el dijous, 1 de gener de 1970.
Quand Ken Thompson i Dennis Ritchie estaven desenvolupant les primeres versions de Unix als Bell Labs, necessitaven una manera simple i eficient perquè els ordinadors representessin i emmagatzemasin dates i hores. Les dates llegibles per humans (com "29 de juliol de 2026") són increïblement complexes per als ordinadors. Impliquen mesos irregulars (alguns amb 28, 29, 30 o 31 dies), anys de traspàs, zones horàries i transicions d'estalvi de llum diurna. Representant el temps com un únic enter continu que augmenta, els desenvolupadors de Unix van crear un estàndard de temps universal i inequívoc que es podia emmagatzemar, comparar i manipular matemàticament amb facilitat.
Per què els desenvolupadors utilitzen marques de temps Epoch avui
Ens anys més tard, el temps Epoch continua sent la columna vertebral de la infraestructura informàtica moderna. Aquí és per què es va adoptar universalment:
- Simplicitat i eficiència: Emmagatzemar un enter de 32 bits o 64 bits ocupa significativament menys espai en disc i memòria que emmagatzemar una cadena de data formatada. Quan les bases de dades contenen miliards de registres, estalviar uns quants bytes per fila es tradueix en reduccions massives de costos d'emmagatzematge i millor rendiment de l'índex de base de dades.
- Agnòstic de zones horàries: Una marca de temps Epoch està inherentment lligada a UTC. No importa on es trobi físicament l'usuari. Quan un servidor a Tòquio es comunica amb un client a Nova York, la transmissió d'un enter Epoch evita qualsevol confusió respecte a les zones horàries. El client simplement converteix l'enter a la seva zona horària local en rebre'l.
- Operacions matemàtiques fàcils: Calcular la durada entre dos esdeveniments és tan simple com restar una marca de temps de l'altra. Si desitjeu saber quants segons han transcorregut entre dues entrades de registre,
timestamp2 - timestamp1us ofereix la resposta exacta instantàniament, sense lògica complexa d'anàlisi de dates. - Ordenació de base de dades: Ordenar registres cronològicament per una columna sencera és molt més ràpid per als motors de base de dades que analitzar i ordenar cadenes de marca de temps basades en text.
L'impacte dels segons de salt
Un matís tècnic del temps Unix és com maneja els segons de salt. Un segon de salt és un ajustament d'un segon que ocasionalment s'aplica al Temps Universal Coordinat (UTC) per mantenir l'hora del dia propera a l'hora solar mitjana. Interessantment, Unix Time no compta els segons de salt. En el sistema Unix Time, cada dia es tracta com exactament 86.400 segons de llarg. Quan es produeix un segon de salt, el rellotge Unix essencialment repeteix el mateix segon dues vegades. Aquesta opció de disseny intencionada evita que les marques de temps es tornen impredictibles, encara que significa que Unix Time no és una mesura estricta i lineal del temps físic transcorregut des de 1970. Per a la gran majoria d'aplicacions d'enginyeria de programari, aquesta petita discrepància és completament acceptable i preferible a la complexitat de rastrejar cada segon de salt històric.

