UNIX-aikaleiman muunnin | Online-työkalu
Nykyinen UNIX-aikaleima
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 muoto | Esimerkki | Tyypillinen käyttö |
|---|---|---|
| Sekunnit (s) | 1700000000 | tietokannat, taustajärjestelmät, API:t, tiedostot |
| Millisekunnit (ms) | 1700000000000 | JavaScript (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
- Syötä UNIX-aikaleima kenttään tai napsauta Nyt (nykyinen UNIX-aika).
- Jos aikaleima on millisekunnneissa, aktivoi valinta Millisekunnit.
- Napsauta Muunna (tai paina Enter).
- Näet muunnoksen paikalliseen aikaan, UTC:hen ja ISO 8601 -muotoon.
- Napsauttamalla tulosta kopioit sen leikepöydälle.
2) Päivämäärä ja aika → Aikaleima
- Valitse päivämäärä ja aika lomakkeesta.
- Napsauta Muunna.
- 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.).
- JWT –
iat(issued at) jaexp(expires) väitteet ovat tyypillisesti epoch-sekunneissa. - Linux/Unix-kuori –
date +%spalauttaa nykyisen aikaleiman. - JavaScript –
Date.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ätFROM_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ä).