Che cosè Unix Time e quando è stata lepoca di Unix?

Che cosè Unix Time e quando è stata lepoca di Unix?

Perché Unix ha il suo concetto di tempo? Qual è l'epoca e qual è il problema Y2038?

L'ora Unix è un mezzo per rappresentare una data e un'ora specifiche, utilizzato da Linux, macOS e molti altri sistemi interoperabili. È così diffuso che probabilmente lo stai usando senza esserne consapevole. Una volta compreso il tempo di Unix, tuttavia, lo individuerai in molti contesti. Diversi strumenti possono aiutarti a lavorare con il tempo di Unix.

Qual è lo scopo di Unix Time?

Il tempo Unix è un conteggio dei secondi totali tra un'ora e una data fisse. È un formato di data/ora (o timestamp) che ha un aspetto diverso dalle date e dalle ore leggibili a cui siamo abituati. Questo è puramente per motivi di efficienza. Ci vuole molto meno spazio per memorizzare un singolo numero che rappresenta i secondi di quanto non faccia per memorizzare valori separati per l'anno, il mese, l'ora, ecc.

Naturalmente, in termini moderni, la differenza di spazio non è affatto così grande. Ma considera che Unix è nato alla fine degli anni '60, quando lo spazio di archiviazione disponibile era molto più piccolo. Anche i timestamp sono molto usati, quindi il loro spazio di archiviazione si somma. Ad esempio, a ogni file sono associati tre timestamp.

Il formato è praticamente impossibile da tradurre nella tua testa a meno che tu non sia un genio della matematica. Ma ha ancora alcuni vantaggi rispetto ad alternative più leggibili come Wed, 21 Oct 2015 07:28:00 GMT . Puoi ordinare due timestamp Unix molto facilmente, a colpo d'occhio. Di solito è anche più veloce calcolare la differenza tra due timestamp. Ciò è particolarmente vero per le date ravvicinate, ad esempio nei giorni adiacenti.

Che cos'è Unix Time e quando è stata l'epoca di Unix?

A proposito dell'Epoca

Quindi, il tempo Unix è un conteggio totale di secondi da un momento specifico. Ma qual è quel momento? Sono le 00:00:00 UTC del 1° gennaio 1970 . Questo è spesso indicato come Unix Epoch. I programmatori hanno scelto questa data per l'epoca per comodità poiché era la data rotonda più vicina quando hanno inventato il tempo di Unix.

Potresti aver visto questa data quando qualcosa è andato storto. È chiaramente un bug, ma sembra molto strano quando risulta in una data precedente alla nascita di molti di noi! È completamente comprensibile, tuttavia, quando si conosce l'era di Unix. Se un sistema sta cercando di visualizzare un timestamp che non ha alcun valore, spesso si tradurrà in 0 e risulterà nella data dell'epoca esatta.

Il formato dei dati temporali di Unix

A rigor di termini, non ce n'è uno. Il tipo di dati originale era un intero a 32 bit, e questo spesso rimane il caso, anche in sistemi molto più potenti.

Questo tipo di dati consente al valore di memorizzare un totale di 2^32 secondi, ovvero poco più di 136 anni. Questo valore è in genere firmato, il che significa che può essere negativo o positivo. Quindi, di solito rappresenta 68 anni su entrambi i lati dell'epoca, cioè 1902-2038.

Questo è ancora un periodo limitato, ovviamente. Ma l'uso principale del formato timestamp era per concetti come la modifica dei file. La necessità era davvero quella di rappresentare il tempo vicino al presente, piuttosto che la storia antica o lontano nel futuro. Anche per applicazioni come i calendari, raramente è necessario rappresentare le date a più di qualche decennio nel futuro.

Ma questo non significa che questo lasso di tempo limitato sia senza problemi...

Il problema dell'anno 2038

Il bug dell'anno 2000 ( uno dei peggiori errori di programmazione della storia ) ha colpito i sistemi informatici che memorizzavano gli anni come valori a due cifre. Quando arrivò l'anno 2000, tali sistemi lo trattarono come se fosse il 1900. In effetti, questo non fu così catastrofico come temuto, principalmente perché molte persone hanno speso molto tempo e fatica in anticipo, preparandosi per questo.

Se stavi prestando attenzione nella sezione precedente, potresti aver individuato un problema simile che potrebbe influenzare il tempo di Unix. Ebbene, il tempo di Unix ha un suo problema con i dati: il problema Y2k38. (Spesso viene definito un problema, non un bug; forse siamo diventati più ottimisti dall'anno 2000!) Quando il tempo di Unix si esaurirà letteralmente nel 2038, i sistemi tratteranno le nuove date come 1902 o 1970. O forse ' fallirò del tutto.

Almeno questo problema non ci colpirà allo scoccare della mezzanotte di Capodanno. L'ultimo secondo del tempo Unix a 32 bit cadrà il 19 marzo. Nell'eventualità, probabilmente aggiorneremo la maggior parte dei sistemi entro il 2038 o comunque saranno obsoleti per allora.

Alcune utili risorse di timestamp

Il sito Epoch Converter è probabilmente il convertitore di timestamp più completo disponibile. Inizia visualizzando l'ora corrente di Unix, in tempo reale, e aggiunge quasi tutte le funzionalità immaginabili. Il suo utilizzo principale è per la conversione tra timestamp e date leggibili dall'uomo, in entrambe le direzioni.

Dan's Tools è una vasta raccolta di utili app web, una delle quali è un convertitore di timestamp . È più semplice, ma ha una presentazione molto pulita ed è facile da usare.

Time.is presenta un altro aspetto ancora più minimalista. Mostra l'ora in diversi formati, incluso l'ora Unix. Include l'ora corrente nel titolo della pagina, il che è utile.

Che cos'è Unix Time e quando è stata l'epoca di Unix?

Utilizzo di Unix Time con gli strumenti della riga di comando

Su Linux e macOS, il programma date è l'utilità principale per gestire data/ora, inclusi i timestamp Unix. Chiamato senza argomenti, restituisce la data/ora corrente in un formato leggibile dall'uomo:

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

Se hai bisogno della data/ora corrente in Unix time, usa l' argomento +%s :

$ date +%s 1612960114

Puoi convertire una data leggibile dall'uomo in un timestamp usando il flag -d se la tua versione della data lo supporta. La maggior parte delle versioni di Linux dovrebbe, per impostazione predefinita:

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

Su macOS, date è un programma diverso, che richiede un diverso set di flag:

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

Andando nella direzione opposta, puoi convertire da un timestamp Unix usando il flag -r :

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

Alcuni altri programmi usano il formato %s per gestire il tempo di Unix. Ad esempio, se vuoi mostrare la data di modifica di un file in Unix time, con la versione Linux di ls , puoi usare quanto segue:

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

Come usare Unix Time nei linguaggi di programmazione

PHP ha la funzione  time() che restituisce il timestamp Unix corrente. La sua funzione date() accetta un timestamp come secondo argomento:

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

JavaScript si avvicina alle cose in un modo interessante. Ha un metodo Date.now() per ottenere il numero di millisecondi dall'epoca di Unix. Ovviamente puoi dividerlo per 1.000 e arrotondare il risultato per ottenere il tempo Unix equivalente in secondi:

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

Capire Unix Time

Il tempo di Unix è un concetto semplice che emerge in molti luoghi. Una volta compreso, potresti trovarlo molto utile, ad esempio nel calcolo delle differenze di orario. Puoi anche riconoscere quando potrebbe essere la causa di alcuni bug.

Concetti come epoch e timestamp sono una parte importante per iniziare con Linux. Per saperne di più su elementi essenziali come ls , consulta la nostra guida ai comandi di base di Linux.


Come copiare e incollare su Chromebook

Come copiare e incollare su Chromebook

La prima cosa che potresti chiederti mentre passi a un Chromebook è come fare le cose di base, il tipo di cose che avevi sul palmo della tua mano nel tuo sistema operativo precedente. Copiare e incollare è una di queste funzioni fondamentali che devi usare prima o poi.

Come fare un test di digitazione su Linux con tt

Come fare un test di digitazione su Linux con tt

Nell'era moderna della tecnologia, la dattilografia è diventata una delle attività più comuni per molte professioni. Imparare a digitare più velocemente con precisione può aiutarti a fare più cose nello stesso lasso di tempo.

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Ubuntu è famoso per la sua robustezza e relativamente meno errori. Ma non è senza problemi, di sicuro. Uno di questi problemi è con il suo driver Wi-Fi. Potresti accendere il tuo sistema solo per scoprire che il tuo Wi-Fi non funziona.

Come creare e scansionare codici QR su Chromebook

Come creare e scansionare codici QR su Chromebook

I codici di risposta rapida, o codici QR in breve, sono codici a barre avanzati che contengono più informazioni rispetto a un codice a barre tradizionale. Questi codici sono bidimensionali, consentendoti di scansionarli verticalmente o orizzontalmente.

Come installare e rimuovere i pacchetti in Arch Linux

Come installare e rimuovere i pacchetti in Arch Linux

Vuoi installare pacchetti su Arch Linux ma non sai come fare? Molte persone affrontano questo problema quando migrano per la prima volta dalle distribuzioni basate su Debian ad Arch. Tuttavia, puoi facilmente gestire i pacchetti sul tuo sistema basato su Arch utilizzando i gestori di pacchetti.

10+ migliori estensioni GNOME per Ubuntu 20.04

10+ migliori estensioni GNOME per Ubuntu 20.04

Molte delle estensioni popolari come Gno-Menu, Extended Gestures non funzionano con Ubuntu 20.04. Quindi, ecco un elenco delle migliori estensioni GNOME funzionanti

Come installare Spotify su Linux

Come installare Spotify su Linux

Spotify è uno dei più grandi servizi di streaming musicale in circolazione. Ha client nativi sia per dispositivi mobili (Android e iOS) che desktop (Mac e Windows).

9 comandi di base per iniziare con Linux

9 comandi di base per iniziare con Linux

Le guide pratiche di Linux spesso si aspettano che tu esegua determinate operazioni nel terminale, il che all'inizio può sembrare intimidatorio. Ma non preoccuparti; questo cheat sheet del comando Linux coprirà il processo di apertura di un terminale e l'emissione di alcuni comandi utili.

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

Un meccanismo come FTP, trasferimento file peer-to-peer, trasferimento Wi-Fi ti farà risparmiare tempo se condividi spesso file tra il tuo Android e Ubuntu.

Come spostare file Linux con il comando Mv

Come spostare file Linux con il comando Mv

Anche se probabilmente sai già come spostare un file in Linux utilizzando il browser di file della GUI, potresti chiederti se c'è un comando di spostamento nel terminale che ti consente di spostare rapidamente i file in directory diverse. Il comando mv è quello che desideri ed è facile da usare con la sua sintassi semplice e alcuni flag di sicurezza opzionali.