Què és l'hora d'Unix i quan va ser l'època d'Unix?

Què és l'hora d'Unix i quan va ser l'època d'Unix?

Per què Unix té el seu propi concepte de temps? Quina és l’època i quin és el problema Y2038?





Unix time és un mitjà per representar una data i una hora específiques, utilitzades per Linux, macOS i molts altres sistemes interoperables. Està tan estès que probablement l’utilitzeu sense ser-ne conscient. Un cop hàgiu entès el temps d’Unix, però, el veureu en molts contextos. Diverses eines us poden ajudar a treballar amb Unix time.





Quin és el propòsit de Unix Time?

El temps Unix és un recompte de segons totals des d'una data i hora fixes. És un format de data / hora (o marca de temps) que té un aspecte diferent de les dates i hores de lectura humana per les quals estem acostumats. Això és purament per motius d’eficiència. Es necessita molt menys espai per emmagatzemar un sol nombre que representa segons que per emmagatzemar valors separats per a l'any, mes, hora, etc.





Per descomptat, en termes moderns, la diferència d’espai no és tan gran. Però tingueu en compte que Unix es va originar a finals dels anys seixanta quan l’emmagatzematge disponible era molt menor. Les marques de temps també s’utilitzen molt, de manera que s’afegeix el seu emmagatzematge. Per exemple, cada fitxer té tres marques de temps associades.

El format és pràcticament impossible de traduir al vostre cap a menys que sigueu un geni matemàtic. Però encara té alguns avantatges respecte a alternatives més llegibles, com ara Dimecres, 21 d'octubre de 2015 07:28:00 GMT . Podeu demanar dues marques de temps Unix molt fàcilment, d'un cop d'ull. Normalment, també és més ràpid esbrinar la diferència entre dues marques de temps. Això és particularment cert per a dates properes, com ara els dies adjacents.



Sobre l’època

Per tant, el temps d'Unix és un recompte total de segons des d'un punt concret del temps. Però, quin és aquest punt en el temps? És així 00:00:00 UTC encès 1 de gener de 1970 . Sovint es denomina època Unix. Els programadors van escollir aquesta data per l’època per comoditat, ja que era la data més propera quan van inventar l’hora Unix.

És possible que hàgiu vist aquesta data quan alguna cosa ha fallat. És clar que és un error, però que sembla molt estrany quan resulta una data anterior a l’època en què vam néixer molts de nosaltres. Tanmateix, és completament comprensible quan coneixeu el temps Unix. Si algun sistema intenta mostrar una marca de temps que no té cap valor, sovint es traduirà a 0 i donarà lloc a la data d’època exacta.





com connectar auriculars bluetooth a Xbox

El format de dades Unix Time

En sentit estricte, no n’hi ha cap. El tipus de dades original era un enter de 32 bits, i això sovint continua sent així, fins i tot en sistemes molt més potents.

Aquest tipus de dades permet que el valor emmagatzemi un total de 2 ^ 32 segons, que és poc més de 136 anys. Aquest valor sol estar signat, és a dir, que pot ser negatiu o positiu. Per tant, sol representar 68 anys a banda i banda de l’època, és a dir, 1902-2038.





Per descomptat, aquest és encara un període limitat. Però l’ús principal del format de marca de temps va ser per a conceptes com la modificació de fitxers. La necessitat era molt de representar el temps proper al present, més que la història antiga o lluny del futur. Fins i tot per a aplicacions com ara calendaris, poques vegades hi ha la necessitat de representar dates a més d’unes dècades.

Però això no vol dir que aquest període de temps limitat estigui sense problemes ...

El problema de l'any 2038

L'error Y2K (un dels pitjors errors de programació de la història) va afectar els sistemes informàtics que van emmagatzemar anys com a valors de dos dígits. Quan es va produir l’any 2000, aquests sistemes el van tractar com si fos el 1900. En el cas, això no va ser tan catastròfic com es temia, principalment perquè molta gent va dedicar molt de temps i esforç per endavant a preparar-ho.

Si estiguéssiu atents a la secció anterior, és possible que hagueu detectat un problema similar que podria afectar el temps d'Unix. Bé, Unix time té un problema de dades propi: el problema Y2k38. (Sovint es coneix com un problema, no com un error; potser ens hem tornat més optimistes des de l'any 2000!) Quan el temps d'Unix s'acaba literalment el 2038, els sistemes tractaran les noves dates ja sigui com a 1902 o 1970. O possiblement ' Simplement fallaré completament.

Almenys aquest problema no ens afectarà a mitjanit de la nit de Cap d’Any. L’últim segon del temps Unix de 32 bits caurà el 19 de març. Si s’esdevé, és probable que actualitzem la majoria de sistemes el 2038 o, de totes maneres, ja estaran obsolets.

Alguns recursos útils per a la marca de temps

El Convertidor d’època és possiblement el convertidor de marca de temps més complet disponible. Comença mostrant l'hora Unix actual (en temps real) i afegeix gairebé totes les funcions imaginables. El seu ús principal és fer conversions entre les marques de temps i les dates llegibles pels humans, en ambdues direccions.

Dan's Tools és una enorme col·lecció d'aplicacions web útils, una de les quals és convertidor de marca de temps . És més bàsic, però té una presentació molt neta i és fàcil d’utilitzar.

Time.is presenta un altre aspecte encara més minimalista. Mostra el temps en diversos formats, inclòs el temps Unix. Inclou l'hora actual al títol de la pàgina que és útil.

Ús d’Unix Time amb eines de línia d’ordres

A Linux i macOS, el fitxer data programa és la utilitat bàsica per tractar la data / hora, incloses les marques de temps Unix. Anomenat sense cap argument, retorna la data / hora actual en un format llegible per humans:

$ date
Wed Feb 10 12:28:30 GMT 2021

Si necessiteu la data / hora actual a l'hora Unix, utilitzeu el fitxer +% s argument:

$ date +%s
1612960114

Podeu convertir d'una data llegible per humans en una marca de temps mitjançant el fitxer -d marca si la vostra versió de data ho dóna suport. Per defecte, la majoria de versions de Linux haurien de:

$ date -d 'Jan 2 1970' +%s
82800

On macOS, data és un programa diferent, que requereix un conjunt diferent de banderes:

$ date -j -f '%b %d %Y %T' 'Jan 02 1970 00:00:00' '+%s'
82800

Anant en l'altra direcció, podeu convertir des d'una marca de temps Unix mitjançant el fitxer -r bandera:

$ date -r 1600000000
Sun 13 Sep 2020 13:26:40 BST

Alguns altres programes utilitzen el fitxer % s format per tractar amb el temps Unix. Per exemple, si voleu mostrar la data de modificació d'un fitxer en temps Unix, amb el fitxer Versió de Linux de ls , podeu utilitzar el següent:

$ ls -l --time-style=+%s index.tmp.html
-rw-r--r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

Com utilitzar Unix Time en llenguatges de programació

PHP té temps() funció que retorna la marca de temps actual Unix. Seu data() La funció pren una marca de temps com a segon argument:

$ php -r 'echo date('Y-m-d', time());'
2021-02-11

JavaScript aborda les coses d’una manera interessant. Té un Date.now () mètode per obtenir el nombre de mil·lisegons des de l'època Unix. Per descomptat, podeu dividir-lo per 1.000 i arrodonir el resultat per donar el temps Unix equivalent en segons:

> Math.floor(Date.now() / 1000)
1613083012

Comprensió del temps Unix

Unix time és un concepte senzill que sorgeix a molts llocs. Un cop ho hàgiu entès, és possible que el trobeu molt útil per calcular les diferències de temps, per exemple. També podeu reconèixer quan pot ser la causa d’alguns errors.

Conceptes com l’època i les marques de temps són una part important per començar a utilitzar Linux. Per obtenir més informació sobre elements essencials com ls , consulteu la nostra guia d’ordres bàsiques de Linux.

Compartir Compartir Tweet Correu electrònic 9 ordres bàsiques per començar a utilitzar Linux

Voleu familiaritzar-vos amb Linux? Comenceu amb aquestes ordres bàsiques de Linux per aprendre tasques informàtiques estàndard.

Llegiu a continuació
Temes relacionats Sobre l'autor Bobby Jack(58 articles publicats)

Bobby és un entusiasta de la tecnologia que va treballar com a desenvolupador de programari durant gairebé dues dècades. És un apassionat dels jocs, treballa com a editor de ressenyes a Switch Player Magazine i està immers en tots els aspectes de la publicació en línia i el desenvolupament web.

Més de Bobby Jack

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us