Povratak na blog

Vodič za programere o Unix vremenskom pretvaraču

Savladajte konverter Unix vremenskih oznaka. Naučite kako pretvoriti epoch vrijeme u datume koji su razumljivi ljudima, rukovati različitim jezicima i izbjeći uobičajene zamke za programere.

Vodič za programere o Unix vremenskom pretvaraču

Unix timestamp konverter jedan je od onih jednostavnih, ali neophodnih alata koje ćete kao programer ili analitičar podataka neprekidno koristiti. To je korisna aplikacija koja prevodi dugi, naizgled nasumičan broj u datum i vrijeme koje možemo razumjeti. Ova pretvorba je ključna kada pretražujete sistemske logove, radite s API-ima ili upitima u bazama podataka gdje je vrijeme pohranjeno u ovom super učinkovitom formatu.

Što je Unix timestamp i zašto je važan

Digitalni brojač koji prikazuje Unix timestamp 1609459200, uz detalje za sekunde, milisekunde i mikrosekunde.

Prije nego što zaista cijenite dobar konverter, morate shvatiti što taj broj zapravo jest. U svojoj srži, Unix timestamp je samo tekući broj sekundi. Prati ukupan broj sekundi koje su prošle od 00:00:00 UTC 1. siječnja 1970.. Taj specifični trenutak u vremenu poznat je kao "Unix epoha".

Zašto ova metoda? Jednostavnost i učinkovitost. Pohranjivanje vremena kao jednog cijelog broja je daleko kompaktnije i učinkovitije od opširnog stringa poput "Petak, 1. siječnja 2021. 12:00:00 AM GMT". To ga čini savršenim za nekoliko ključnih područja:

  • Pohrana u bazi podataka: Timestamps su mali, što ih čini brzim za indeksiranje i upite. To je ogroman dobitak za performanse.
  • API payloads: Slanje jednog broja naprijed-natrag je mnogo lakše za propusnost od slanja cijelog datuma, što dovodi do bržih vremena odgovora.
  • Log datoteke: Kada analizirate logove iz desetaka različitih sustava, imati uniformni, jezik-agnostični timestamp je spasitelj.
  • Izračuni: Trebate znati koliko je trajao proces? Samo oduzmite početni timestamp od završnog timestamp-a. To je jednostavna cijela aritmetika.

Sekunde vs. Milisekunde i dalje

Klasični Unix timestamp je 10-cifreni broj koji predstavlja sekunde. No, kako je tehnologija napredovala, potreba za preciznijim mjerenjem vremena je rasla. Tu ćete početi viđati različite duljine timestampova, a to je česta prepreka.

Evo brzog pregleda onoga što ćete obično susresti u praksi. Zamjena jednog za drugi je klasična greška "od tisuću" koja može dovesti do vrlo zbunjujućih bugova.

Uobičajeni Unix timestamp formati na prvi pogled

Jedinca Cifre Tipična upotreba Primjer vrijednosti (za isti trenutak)
Sekunde 10 Standard za većinu backend sustava, baza podataka i API-ja. 1609459200
Milisekunde 13 Vrlo uobičajeno u web tehnologijama, posebno JavaScript. 1609459200000
Mikrosekunde 16 Koristi se u visoko frekventnom trgovanju ili znanstvenom računanju. 1609459200000000

Razumijevanje ovih formata je ključno. Ako alat očekuje sekunde, a vi mu date milisekunde, dobit ćete datum koji je tisućama godina u budućnosti. To je greška koju smo svi napravili u nekom trenutku!

Poznati problem godine 2038

Elegantna jednostavnost Unix timestamp-a također je stvorila bombu s odgodom: "problem godine 2038". Na starijim 32-bitnim sustavima, timestamps su pohranjeni kao potpisani 32-bitni cijeli brojevi. Problem je u tome što ovaj tip cijelog broja ima gornju granicu - ne može zadržati broj veći od 2,147,483,647.

Na 19. siječnja 2038. u 03:14:07 UTC, broj sekundi od epohe će premašiti tu granicu. Kada se to dogodi, cijeli broj će "prevrnuti" i postati negativan broj. To bi moglo uzrokovati da ranjivi sustavi interpretiraju datum kao da se vraća u 1901., što bi moglo srušiti milijarde naslijeđenih uređaja koji su još uvijek prisutni. Možete dobiti više informacija o Unix epohi i njenom utjecaju od stručnjaka iz StrongDM-a.

Srećom, to nije nešto o čemu se većina nas mora brinuti svakodnevno. Velika većina modernih sustava prešla je na 64-bitne cijele brojeve za mjerenje vremena. 64-bitni cijeli broj je toliko ogroman da se neće preplaviti još 292 milijarde godina, što učinkovito rješava problem zauvijek.

Ipak, to je fantastičan dio računalne povijesti i kritična informacija ako se ikada nađete kako radite na starijim ugrađenim sustavima ili naslijeđenim kodnim bazama. Razumijevanje ovih osnova čini svaki Unix timestamp konverter mnogo moćnijim alatom u vašim rukama.

Olakšavanje konverzija u vašem pregledniku

Dok korištenje terminalske naredbe ili koda funkcionira, to nije uvijek najbrži način za obavljanje stvari. Ponekad, jednostavno trebate odgovor odmah, bez prekidanja fokusa ili prebacivanja prozora. Tu pravi alat temeljen na pregledniku zaista pokazuje svoju vrijednost, posebno posvećeni Unix timestamp konverter koji se nalazi unutar vašeg preglednika.

Prava čarolija ovdje je ostati u toku. Zamislite ovo: pretražujete odgovor API-ja u alatima za razvojne programere vašeg preglednika i primijetite timestamp. Umjesto da otvarate novu karticu ili pokrećete terminal, pritisnete brzi prečac na tipkovnici, zalijepite broj i odmah dobijete odgovor. To je vrsta besprijekornog radnog toka koju dobivate s alatima poput ShiftShift Extensions, koji u jedan Command Palette pakiraju mnoštvo korisnih alata.

Dobijte trenutne odgovore s prečacem na tipkovnici

Sve se svodi na brzinu. S alatom poput ShiftShift, brzo dvostruko pritiskanje tipke Shift (ili Cmd+Shift+P na Macu) otvara komandnu traku. Samo počnite tipkati "timestamp," i konverter se pojavljuje. Zalijepite svoju vrijednost i odmah imate datum koji je lako čitljiv.

Evo kako to izgleda—Command Palette je spremna i čeka da konvertira timestamp iznad vaše trenutne stranice.

Najbolji dio je kako se integrira bez ometanja. Konverter je samo jedan od mnogih alata dostupnih u istom preklopu, tako da nikada ne morate napustiti ono što radite.

Ovaj pristup je spasitelj za programere, testere i svakoga tko praktički živi u svom pregledniku. Osim toga, konverzija se odvija potpuno na vašem računalu. Osjetljivi podaci iz dnevnika ili API odgovora nikada ne napuštaju vaše računalo, što je velika prednost za privatnost.

Mogućnost konverzije timestamp-a, preformatiranja neurednog JSON blob-a i zatim izračunavanja vremenske razlike—sve iz istog sučelja—ogroman je ušteditelj vremena. To pretvara nezgrapan, višekratni proces u jednu, glatku akciju.

Više od samo jednog trika

Odličan alat u pregledniku rijetko je samo jedan alat; to je dio cijelog alata. Često ćete se naći kako koristite konverter timestamp-a zajedno s drugim funkcijama.

Na primjer, možete ga kombinirati s:

  • JSON ili SQL formatterom za čišćenje nekog koda prije nego što izvučete timestamp.
  • ugrađenim kalkulatorom za brzo računanje na epoch vrijednostima. (Možete se igrati s sličnim alatom na ShiftShift kalkulator stranici da vidite kako radi).
  • alat za usporedbu teksta za uočavanje razlika između dva API odgovora, timestamp-ova i svega ostalog.

Imati sve ove bitne alate na jednom mjestu stvara mnogo brži i koherentniji radni tok. Nije samo riječ o praktičnosti—riječ je o uklanjanju svih onih malih, ponavljajućih prekida koji se zbrajaju i ubijaju vašu produktivnost tijekom dana.

Praktične konverzije timestamp-a u kodu

Ako ste programer, znate da se igranje s timestamp-ima jednostavno dio posla. No, budimo iskreni, sintaksa nikada nije potpuno ista od jednog jezika do drugog. Ovaj odjeljak je vaša referentna lista, puna kodnih isječaka koje možete odmah uzeti i koristiti za platforme na kojima zapravo radite. Nema više kopanja kroz stare Stack Overflow teme—samo praktični primjeri koji će vas pokrenuti.

Primjeri koda u JavaScriptu, Pythonu i SQL-u za konverziju Unix timestamp-a.

Bilo da se bavite podacima na web frontendu, pišete Python skriptu ili upitujete bazu podataka, konverzija epoch vremena je temeljna vještina. Proći ćemo kroz najčešće scenarije, od pretvaranja epoch cijelog broja u čitljiv niz i zatim to učiniti sve obrnuto.

Konverzija timestamp-a u JavaScriptu

JavaScriptov Date objekt je vaš primarni alat ovdje, ali ima jednu veliku manu koja često zbunjuje programere: radi u milisekundama, a ne u sekundama. Ovo je klasičan izvor grešaka kada vaš frontend komunicira s backendom koji koristi standardne 10-cifrene, sekundama temeljene timestamp-ove.

Da biste ispravno konvertirali standardni Unix timestamp (u sekundama) u Date objekt, morate ga pomnožiti s 1000.

// Standardni 10-cifreni Unix timestamp (u sekundama)
const unixTimestamp = 1672531200;

// Pretvorite u milisekunde, zatim stvorite Date objekt
const dateObject = new Date(unixTimestamp * 1000);

// Formatirajte u čitljiv UTC niz
// Izlaz: Ned, 01 Jan 2023 00:00:00 GMT
console.log(dateObject.toUTCString());

Trebate trenutni timestamp? Date.now() daje vam ga u milisekundama. Samo se sjetite podijeliti s 1000 i zaokružiti prema dolje prije nego što pošaljete standardni 10-cifreni timestamp natrag API-ju.

Obrada konverzija s Pythonom

Na backendu, Pythonov datetime modul je moćan alat. Izuzetno je fleksibilan i ima fantastičnu podršku za konverzije koje su svjesne vremenskih zona, što ga čini pouzdanim izborom za usluge koje trebaju precizno upravljati vremenom u različitim regijama.

Evo jednostavnog načina za konverziju timestamp-a s datetime bibliotekom:

import datetime

Standardni 10-cifreni Unix timestamp

unix_timestamp = 1672531200

Pretvorite timestamp u datetime objekt

datetime_obj = datetime.datetime.fromtimestamp(unix_timestamp)

Formatirajte ga u čist, lako čitljiv niz

Izlaz: 2023-01-01 00:00:00

print(datetime_obj.strftime('%Y-%m-%d %H:%M:%S'))
Ovaj jednostavan pristup daje vam čist i pouzdan način za upravljanje epoch vremenom u vašim Python aplikacijama. A ako radite s složenim strukturama podataka poput JSON-a koje sadrže timestamp-ove, možda će vam naš vodič o korištenju JSON formattera biti koristan za otklanjanje grešaka.

Konverzije baza podataka s SQL-om

Baze podataka često pohranjuju vrijeme kao Unix timestamp-ove jer su učinkoviti. Dobra vijest je da većina SQL dijalekata ima ugrađene funkcije za rukovanje tim konverzijama izravno unutar vaših upita.

Ovo je daleko učinkovitije od povlačenja sirovih cjelobrojnih vremenskih oznaka i pretvaranja u vašem aplikacijskom kodu.

Unix vremenska oznaka je gotovo univerzalna, koristi se u više od 90% programskih jezika—od JavaScriptove Date.now() do Pythonove time.time()—pokreće trilijune dnevnih operacija. Ispravno upravljanje vremenskim zonama je ključno; solidan unix timestamp pretvarač može obraditi više od 400 IANA zona, što pomaže u sprječavanju grešaka u procijenjenih 62% globalnih aplikacija koje ne upravljaju vremenskim zonama eksplicitno. Više detalja o globalnoj usvajanju ovih alata možete pronaći na Fossa.

Za programere, mogućnost formatiranja SQL-a, pretvaranja vremenskih oznaka i izračunavanja razlika epoha bez napuštanja vašeg računala je ogroman dobitak u produktivnosti. Ovaj pristup koji se temelji na lokalnom prvom pristupu također vas drži u skladu s modernim standardima privatnosti podataka poput GDPR-a i CCPA-e.

MySQL Primjer

U MySQL-u, funkcija FROM_UNIXTIME() je ono što ćete najčešće koristiti. Ona uzima cjelobrojnu epohu i uredno je pretvara u standardni DATETIME format.

SELECT FROM_UNIXTIME(1672531200);
-- Vraća: '2023-01-01 00:00:00'
Da biste išli u suprotnom smjeru—od stringa datuma natrag do vremenske oznake epohe—samo upotrijebite UNIX_TIMESTAMP().

SELECT UNIX_TIMESTAMP('2023-01-01 00:00:00');
-- Vraća: 1672531200

PostgreSQL Primjer

PostgreSQL koristi malo drugačiju, ali jednako moćnu funkciju: to_timestamp(). Ova funkcija izravno pretvara Unix vremensku oznaku u TIMESTAMP WITH TIME ZONE vrijednost.

SELECT to_timestamp(1672531200);
-- Vraća: 2023-01-01 00:00:00+00
Budući da je svjesna vremenskih zona odmah iz kutije, to je vrlo robusna opcija za aplikacije koje služe globalnoj publici gdje je preciznost vremena neupitna.

Usavršavanje Pretvorbi Vremenskih Oznaka u Terminalu

Ako živite u naredbenom retku, prelazak na preglednik ili GUI za brzu pretvorbu vremenskih oznaka može biti pravi ubica radnog toka. Jednostavno vam prekida koncentraciju. Dobra vijest je da ne morate; i Linux i macOS imaju moćne, izvorne alate za upravljanje tim pretvorbama bez napuštanja terminala.

Alat koji se koristi za ovo je skromna date naredba. Ona je prisutna praktički na svakom Unix-sličnom sustavu, ali postoji caka: sintaksa za korištenje kao unix timestamp pretvarač je različita između Linuxa (GNU) i macOS-a (BSD). Poznavanje razlike je ključ za ispravno korištenje svaki put.

Pretvaranje Vremenskih Oznaka na Linuxu

Na Linuxu, sintaksa je jasna i lako pamtljiva. Samo koristite -d oznaku za određivanje datuma, ali morate reći da pružate vremensku oznaku epohe tako da je prefiksirate simbolom @.

Recimo da pretražujete logove i primijetite vremensku oznaku 1704067200. Da biste vidjeli što to zapravo znači, pokrenuli biste ovo:

date -d @1704067200

Odmah ćete dobiti datum koji je lako čitljiv, nešto poput Pon Jan 1 00:00:00 UTC 2024. Također možete očistiti taj izlaz s vlastitim prilagođenim formatom.

date -d @1704067200 +"%Y-%m-%d %H:%M:%S"

Izlaz: 2024-01-01 00:00:00

Pro Savjet: Ova naredba postaje pravi moćnjak kada počnete usmjeravati druge naredbe u nju. Možete grep vremensku oznaku iz ogromne datoteke logova i izravno je proslijediti date za trenutnu pretvorbu. Pretvara višestepeni zadatak otklanjanja pogrešaka u jedan elegantni jednorazredni zadatak.

Upravljanje Pretvorbama na macOS-u

Sada, ako pokrenete tu istu Linux naredbu na Macu, dobit ćete grešku. BSD verzija date koju koristi macOS zahtijeva oznaku -r umjesto toga, i ne treba @ prefiks.

Evo kako biste pretvorili istu vremensku oznaku na Macu:

date -r 1704067200

Baš kao i Linux verzija, možete dodati opcije formatiranja kako biste dobili točno onakav izlaz kakav želite.

date -r 1704067200 +"%Y-%m-%d %T %Z"

Izlaz: 2024-01-01 00:00:00 UTC

Ova mala razlika je klasična prepreka za svakoga tko često prelazi između Linuxa i macOS-a. Pamćenje obje verzije će vam uštedjeti puno glavobolja u budućnosti.

Jednom kada ovladate ovim naredbama, možete ih ugraditi izravno u svoje shell skripte i analize logova. To je mala vještina, ali se zbraja u ozbiljne dobitke u produktivnosti, držeći vas u zoni i fokusiranim na posao koji je važan.

Uobičajene Zamke Vremenskih Oznaka i Kako Ih Izbjeći

Rad s Unix vremenskim oznakama čini se jednostavnim na površini, ali nekoliko klasičnih grešaka može dovesti do zaista frustrirajućih bugova. Ovi problemi imaju zlu naviku pojavljivanja daleko od mjesta gdje se greška zapravo dogodila, što ih čini pravom glavoboljom za otklanjanje. Razmislite o ovom odjeljku kao o vašem vodiču za prepoznavanje i izbjegavanje najčešćih zamki vremenskih oznaka koje sam vidio tijekom godina.

Zbrka Sekundi i Milisekundi

Daleko najčešća greška je brkanje sekundi s milisekundama. Standardna Unix vremenska oznaka je 10-cifreni cijeli broj koji predstavlja broj sekundi od epohe. No, mnogi sustavi, posebno u svijetu JavaScripta, rade s 13-cifrenom vremenskom oznakom za milisekunde.

Kada front-end aplikacija proslijedi vrijednost u milisekundama backendu koji očekuje sekunde, stvari krenu naopako.

Za unix timestamp konvertor, taj 13-cifreni broj izgleda kao datum tisućama godina u budućnosti. To može tiho uništiti validaciju podataka, logiku rasporeda i sve povijesne zapise koje pokušavate zadržati. To je vrsta suptilne korupcije podataka koju možda nećete primijetiti tjednima.

Zamka vremenskih zona

Još jedna zamka koja hvata čak i iskusne programere je rukovanje vremenskim zonama. Po svojoj definiciji, Unix timestamp je uvijek u koordiniranom svjetskom vremenu (UTC). Predstavlja jedan, univerzalni trenutak u vremenu, potpuno neovisan o lokaciji. Zamka se aktivira kada zaboravite ovo i pretpostavite da timestamp odražava lokalno vrijeme korisnika.

Ova greška obično se događa kada konvertirate timestamp u čitljiv datum bez specificiranja vremenske zone. Vaš sustav često zadano koristi lokalno vrijeme poslužitelja, što dovodi do kaosa. Korisnik u New Yorku mogao bi vidjeti vrijeme namijenjeno nekome u Londonu, ali je pomjereno nekoliko sati.

Zlatno pravilo je jednostavno: uvijek tretirajte timestampove kao UTC u vašem backendu. Pohranjujte ih kao UTC, obrađujte ih kao UTC, i samo ih konvertirajte u lokalno vrijeme korisnika na front-endu, točno u trenutku prikazivanja.

Rješavanje uobičajenih grešaka pri konverziji timestampova

Kada stvari krenu naopako, simptomi mogu biti zbunjujući. Evo brze referentne tablice koju sam sastavio iz iskustva kako bih vam pomogao dijagnosticirati i ispraviti najčešće probleme u hodu.

Simptom Vjerojatan uzrok Rješenje
Datum je u godini 52361 ili nekoj drugoj dalekoj budućnosti. Milisekunde vs. Sekunde. Prosljeđujete 13-cifreni timestamp u milisekundama funkciji koja očekuje 10-cifreni timestamp u sekundama. Podijelite timestamp s 1000 prije obrade. Uvijek provjerite broj cifara dolaznih timestampova.
Vrijeme je pomjereno nekoliko sati, ali je datum točan. Pogrešno rukovanje vremenskim zonama. Timestamp je konvertiran koristeći lokalno vrijeme poslužitelja umjesto korisničkog ili UTC. Osigurajte da sve konverzije eksplicitno specificiraju ciljnu vremensku zonu. Konvertirajte u lokalno vrijeme samo na klijentskoj strani.
Datum je zaglavljen na 1. siječnja 1970. Nevažeći ili Null Timestamp. Vrijednost timestamp-a je vjerojatno 0, null, ili undefined. Dodajte provjeru kako biste osigurali da je timestamp važeći pozitivni cijeli broj prije nego što pokušate konverziju. Pružite rezervnu vrijednost.
Dobivate "Nevažeći datum" ili NaN grešku. Pogrešan tip podataka. Timestamp se tretira kao string ili neki drugi nenumerički tip kada je potreban broj. Eksplicitno analizirajte timestamp u cijeli broj (parseInt() u JS, int() u Pythonu) prije nego što ga upotrijebite u funkcijama za datume.

Zapamtite, brza provjera ulaza može vam uštedjeti sate otklanjanja grešaka kasnije.

Izbjegavanje nejasnoća sa standardnim formatima

Pouzdavanje u sirove cijele timestampove prilikom prosljeđivanja podataka između sustava može biti recept za zbunjenost. Zato je standardizacija na univerzalni string format poput ISO 8601 (2022-05-17T12:00:00Z) tako odličan obrambeni potez. Konvertiranje Unix timestampova (npr., 1652905200) u jasan, samodokumentirajući format poput ovog pomaže u sprječavanju grešaka u procijenjenih 37% API poziva preko vremenskih zona.

Uzimajući u obzir da 72% Fortune 500 kompanija koristi Unix timestampove za analizu logova, gdje jedan jedini propust može koštati više od $10,000 po satu zastoja, preciznost je sve. Možete pročitati više o tome kako se epoch vrijeme koristi u različitim industrijama na EpochConverter.

Za one koji upravljaju bazama podataka, dosljedno rukovanje timestampovima je jednako kritično. Ako se često borite s različitim formatima timestampova u vašoj bazi podataka, naš vodič o korištenju moćnog SQL formatira može vam pomoći da zadržite svoje upite čistima i predvidivima.

Ova dijagram odluke pomaže vam odabrati pravu naredbu za vaš operativni sustav, sprječavajući sintaktičke greške kada vam je potrebna brza konverzija.

Dijagram toka koji ilustrira terminalske naredbe za konverziju timestampova na Linux i macOS operativnim sustavima.

Dijagram toka iznad jasno prikazuje ključnu sintaktičku razliku između date naredbe na Linuxu (-d @...) i macOS-a (-r ...)—uobičajena zamka za programere koji rade u različitim okruženjima.

Kako biste ojačali svoj kod, uvijek implementirajte provjere za validaciju duljine dolaznog timestamp-a. Jednostavna funkcija koja provjerava ima li 10-cifrenu (sekunde) ili 13-cifrenu (milisekunde) vrijednost može uhvatiti ove greške prije nego što ikada otrovaju logiku vaše aplikacije.

Uobičajena pitanja o Unix timestampovima

Kada se jednom upoznate s Unix timestampovima, nekoliko praktičnih pitanja gotovo uvijek ispliva. Vidio sam da su ova pitanja zbunjivala programere svih razina, pa hajde da razjasnimo najčešća koja ćete susresti u svom svakodnevnom radu.

Zašto toliko mnogo API-ja koristi timestampove umjesto ISO 8601 stringova?

To se zapravo svodi na sirovu učinkovitost. Unix timestamp je samo jedan broj, što ga čini nevjerojatno kompaktnim u usporedbi s stringom poput '2023-10-27T10:00:00Z'.

Ta manja veličina znači manje podataka za slanje putem mreže, što štedi propusnost i može ubrzati API odgovore.

Oni su također potpuno neovisni o jeziku. Nema nejasnoća, nema problema s analizom i nema regionalnog formatiranja o kojem treba brinuti. Za stroj, obračunavanje brojeva uvijek je brže od analize nizova, tako da su svi proračuni datuma—poput izračunavanja vremena između dva događaja—računarski jeftiniji. Za sustave visoke izvedbe, ta jednostavnost je veliki dobitak.

Koji je ispravan način za rukovanje vremenskim zonama?

Ovo je najvažnije. Evo zlatno pravilo: Unix vremenska oznaka je uvijek, uvijek u UTC-u. Ona nema koncept vremenske zone ugrađen u nju. To je samo sirovi broj sekundi od epohe.

Vremenske zone postaju važne samo kada trebate prikazati tu vremensku oznaku ljudima.

Moja preporuka? Držite se UTC-a za sve na backendu. Spremite to u svoju bazu podataka kao UTC vremensku oznaku, proslijedite to kroz svoje API-je u UTC-u, i radite svu svoju logiku na poslužitelju u UTC-u. Jedino vrijeme kada biste trebali pretvoriti u lokalnu vremensku zonu je na front-endu, neposredno prije nego što to prikažete korisniku. Ova jedna praksa će vas spasiti od cijelog svemira grešaka vezanih uz vremenske zone i ljetno računanje vremena.

Treba li se još uvijek brinuti o problemu godine 2038?

Za većinu novih projekata, vjerojatno ne. "Problem godine 2038" je naslijeđe starijih sustava koji su koristili 32-bitni potpisani cijeli broj za pohranu vremenske oznake. Kada taj broj postane prevelik, vraća se i postaje negativan, vraćajući datume unatrag do 1901.

Na sreću, gotovo svi moderni sustavi—od operativnih sustava do baza podataka—već su odavno prešli na 64-bitne cijele brojeve. To zapravo odgađa problem toliko daleko u budućnost (milijarde godina, zapravo) da više nije praktična briga za nas.

Ipak, ako održavate naslijeđeni sustav ili radite s ugrađenim hardverom (mislite na IoT uređaje), to je definitivno nešto na što treba obratiti pažnju. Uvijek znajte na kakvoj arhitekturi gradite.

Kako mogu brzo pretvoriti vremensku oznaku u Excelu ili Google Sheets?

Ne trebate izvući svoje podatke u poseban konverter Unix vremenskih oznaka za ovo. Jednostavna formula će obaviti posao. Pretpostavljajući da je vaša vremenska oznaka u ćeliji A1:

  • Za vremenske oznake u sekundama (10 znamenki): =A1 / 86400 + DATE(1970,1,1)
  • Za vremenske oznake u milisekundama (13 znamenki): =A1 / 86400000 + DATE(1970,1,1)

Jednostavno stavite tu formulu, a zatim formatirajte ćeliju kao "Datum" ili "Datum Vrijeme". To je spasitelj kada brzo analizirate izvoze podataka i ne želite prekinuti svoj tijek rada.


Umorni ste od stalnog prebacivanja između svog uređivača, naredbenog retka i desetak kartica preglednika za jednostavne zadatke? Suite ShiftShift Extensions objedinjuje moćan konverter Unix vremenskih oznaka, JSON formatator, SQL ljepšač i još mnogo toga izravno u vašem pregledniku. Sve što vam treba je samo prečac na tipkovnici.

Preuzmite ShiftShift Extensions i pojednostavite svoj radni tijek danas na https://shiftshift.app

Spomenute ekstenzije