UNIX-aikaleiman muunnin | Online-työkalu

Nykyinen UNIX-aikaleima

Sekunnit
Millisekunnit

Aikaleima → Päivämäärä ja aika


Päivämäärä ja aika → Aikaleima

UNIX-aikaleiman muunnin (online-UNIX-aikamuunnin)

Tämä UNIX-aikaleiman muunnin antaa sinun muuntaa nopeasti UNIX-ajan (epoch time / POSIX time) päivämääräksi ja ajaksi ja toisinpäin. Se tukee aikaleimoja sekunneissa ja millisekunnneissa, näyttää paikallisen ajan, UTC:n sekä ISO 8601 -muodon, ja tulokset voidaan kopioida yhdellä napsautuksella.


Mikä on UNIX-aikaleima (epoch time / POSIX time)?

UNIX-aikaleima on luku, joka ilmaisee ajan sekuntien määränä tammikuun 1. päivästä 1970 klo 00:00:00 UTC alkaen (ns. UNIX-epochi). Käytännössä se on yksi yleisimmin käytetyistä muodoista päivämäärän ja ajan tallentamiseen ja siirtämiseen järjestelmissä, tietokannoissa, API:ssa ja lokitiedostoissa.

Esimerkki: 1700000000 vastaa päivämäärää 14. marraskuuta 2023 22:13:20 UTC.

Miksi juuri 1.1.1970?

Epochin alku (1970-01-01) valittiin UNIXin suunnittelussa käytännölliseksi vertailukohdaksi: se on lähellä järjestelmän perustamisaikaa ja mahdollistaa yksinkertaiset aikaliitännäiset laskutoimitukset.


UNIX-aikaleima sekunneissa vs. millisekunnneissa

UNIX-aikaleima esiintyy yleisimmin kahdessa muodossa:

Aikaleiman muotoEsimerkkiTyypillinen käyttö
Sekunnit (s)1700000000tietokannat, taustajärjestelmät, API:t, tiedostot
Millisekunnit (ms)1700000000000JavaScript (Date.now()), analytiikka, yksityiskohtaiset lokit

Miten tunnistaa oikean muodon?

  • Sekunneissa olevissa nykyajan tiedoissa on yleensä 10 numeroa.
  • Millisekunnneissa olevissa on yleensä 13 numeroa ja ne ovat noin 1000 kertaa suurempia.
  • Suuntaa-antava: jos arvo on > 10¹², kyseessä on lähes varmasti millisekunnit.

Miten UNIX-aikaleiman muunninta käytetään

1) Aikaleima → Päivämäärä ja aika

  1. Syötä UNIX-aikaleima kenttään tai napsauta Nyt (nykyinen UNIX-aika).
  2. Jos aikaleima on millisekunnneissa, aktivoi valinta Millisekunnit.
  3. Napsauta Muunna (tai paina Enter).
  4. Näet muunnoksen paikalliseen aikaan, UTC:hen ja ISO 8601 -muotoon.
  5. Napsauttamalla tulosta kopioit sen leikepöydälle.

2) Päivämäärä ja aika → Aikaleima

  1. Valitse päivämäärä ja aika lomakkeesta.
  2. Napsauta Muunna.
  3. Saat tuloksen aikaleimana sekunneissa ja millisekunnneissa.

Missä UNIX-aikaleimaa käytetään yleisimmin?

UNIX-aikaa tapaa käytännöllisesti katsoen kaikkialla, missä IT:ssä käsitellään aikaa:

  • Tietokannat – aikojen tallentaminen ja vertailu MySQL:ssä, PostgreSQL:ssä, SQLite:ssä jne.
  • API:t – REST/GraphQL palauttaa usein ajan aikaleimana (helppo serialisointi).
  • Lokit ja valvonta – tapahtumien tarkka järjestely ajan mukaan.
  • Git – commitit sisältävät aikatiedot.
  • Tiedostojärjestelmät – ajat kuten mtime/ctime/atime (viimeisin muokkaus jne.).
  • JWTiat (issued at) ja exp (expires) väitteet ovat tyypillisesti epoch-sekunneissa.
  • Linux/Unix-kuoridate +%s palauttaa nykyisen aikaleiman.
  • JavaScriptDate.now() palauttaa ajan millisekunnneissa.

Käytännön esimerkkejä UNIX-ajan muunnoksesta

JavaScript (aikaleima ↔ päivämäärä)

// Aktuální UNIX timestamp v sekundách
const tsSeconds = Math.floor(Date.now() / 1000);

// Aktuální timestamp v milisekundách
const tsMs = Date.now();

// Timestamp (s) -> datum
const dateFromSeconds = new Date(1700000000 * 1000);
console.log(dateFromSeconds.toISOString());

// Datum -> timestamp (s)
const ts = Math.floor(new Date("2024-01-01T00:00:00Z").getTime() / 1000);
console.log(ts);

Python (aikaleima ↔ datetime)

import time
from datetime import datetime, timezone

# Aktuální timestamp v sekundách
ts = int(time.time())

# Timestamp -> datetime (UTC)
dt_utc = datetime.fromtimestamp(1700000000, tz=timezone.utc)

# Datum -> timestamp
ts2 = int(datetime(2024, 1, 1, tzinfo=timezone.utc).timestamp())

SQL (MySQL)

-- Aktuální UNIX timestamp (s)
SELECT UNIX_TIMESTAMP();

-- Timestamp -> datum
SELECT FROM_UNIXTIME(1700000000);

-- Datum -> timestamp
SELECT UNIX_TIMESTAMP('2024-01-01 00:00:00');

Aikavyöhykkeet: UTC, paikallinen aika ja ISO 8601

UNIX-aikaleima on aina UTC-ajassa – se ei sisällä tietoa aikavyöhykkeestä eikä kesäajasta. Muunnos paikalliseen aikaan riippuu selaimen, palvelimen tai käytetyn kirjaston asetuksista.

Termit, jotka on hyvä tietää:

  • UTC – globaali standardi ilman kesä-/talviaikaa.
  • GMT – käytännössä sama kuin UTC tavallisessa käytössä.
  • Offset – siirtymä UTC:hen nähden (esim. Helsinki UTC+2 talvella, UTC+3 kesällä).

UNIX-aikaleiman rajoitukset ja Vuoden 2038 ongelma

Vuoden 2038 ongelma (Year 2038 Problem)

Joissakin 32-bittisissä järjestelmissä aikaleima tallennetaan int32-muodossa maksimiarvolla 2 147 483 647, mikä vastaa 19. tammikuuta 2038 klo 03:14:07 UTC. Ylittämisen jälkeen voi tapahtua ylivuoto ja virheellinen aika. Nykyaikaisissa 64-bittisissä järjestelmissä tätä ongelmaa ei tyypillisesti ole.

64-bittisen UNIX-ajan laajuus

64-bittiset arvot kattavat äärimmäisen laajan ajanjakson (käytännössä „ikuisesti“). Negatiiviset arvot tarkoittavat päivämäärää ennen 1.1.1970.


FAQ – usein kysytyt kysymykset UNIX-aikaleimasta

Onko UNIX-aikaleima UTC:ssä vai paikallisessa ajassa? UNIX-aikaleima on aina UTC-ajassa. Paikallinen aika syntyy vasta muunnoksessa aikavyöhykkeen mukaan. Muunnin näyttää siksi yleensä sekä UTC- että paikallisen ajan.
Miten tiedän, onko aikaleima sekunneissa vai millisekunnneissa? Nykyajalle aikaleimassa on sekunneissa tyypillisesti 10 numeroa. Millisekunnneissa siinä on yleensä 13 numeroa ja se on noin 1000 kertaa suurempi. Suuntaa-antava: arvo > 10¹² on yleensä millisekunteja.
Mitä negatiivinen UNIX-aikaleima tarkoittaa? Negatiivinen aikaleima edustaa päivämäärää ennen 1.1.1970. Esimerkiksi -1 vastaa 31.12.1969 23:59:59 UTC.
Miten UNIX-aikaleima muunnetaan SQL:ssä? MySQL:ssä käytät FROM_UNIXTIME(timestamp) ja takaisin UNIX_TIMESTAMP(päivämäärä). PostgreSQL:ssä se on tyypillisesti TO_TIMESTAMP(timestamp) ja EXTRACT(EPOCH FROM päivämäärä).
Miksi UNIX-epochi alkaa 1. tammikuuta 1970? Se on historiallisesti valittu vertailukohta UNIXin alkuajoilta: yksinkertainen, käytännöllinen ja lähellä järjestelmän kehitysaikaa.