unixtimestamp.info

Nykyinen Unix-aikaleima (epoch-aika)

sekuntia 1.1.1970 UTC jälkeen — kopioi napsauttamalla
ms – UTC – Paikallinen –

Unix-aikaleimamuunnin

Muunna epoch-aika luettavaksi päivämääräksi tai päivämäärä Unix-aikaleimaksi. Sekunnit ja millisekunnit tunnistetaan automaattisesti.

Aikaleima → Päivämäärä

Tulos näkyy tässä.

Päivämäärä → Aikaleima

Tulos näkyy tässä.

Mikä on Unix-aikaleima?

Unix-aikaleima (myös epoch-aika, POSIX-aika tai Unix-aika) on hetkestä 1. tammikuuta 1970 klo 00:00:00 UTC kuluneiden sekuntien määrä — tätä hetkeä kutsutaan Unix-epookiksi. Jokainen vuorokausi on täsmälleen 86 400 sekuntia, ja karkaussekunnit jätetään huomiotta.

Koska se on yksi kokonaisluku ilman aikavyöhykettä, kesäaikasääntöjä tai muotoiluepäselvyyksiä, se on tietokoneiden vakiotapa tallentaa ja vaihtaa ajanhetkiä. Tietokannat, lokitiedostot, rajapinnat ja käyttöjärjestelmät käyttävät sitä sisäisesti; luettava päivämäärä muodostetaan vasta näytettäessä, lukijan tarvitsemassa aikavyöhykkeessä.

Unix-aika sekunteina tai millisekunteina

Saman hetken voi ilmaista eri tarkkuuksilla. Numeroiden määrästä näkee yleensä, mistä on kyse:

YksikköNumerot (nyt)EsimerkkiTyypillinen lähde
sekunnit101758700800Unix-työkalut, PHP, MySQL, Python time.time()
millisekunnit131758700800000JavaScript Date.now(), Java
mikrosekunnit161758700800000000Tarkkuuslokitus
nanosekunnit191758700800000000000Go UnixNano(), jäljitysjärjestelmät

Vuoden 2038 ongelma

Järjestelmät, jotka tallentavat Unix-ajan etumerkillisenä 32-bittisenä kokonaislukuna, ylivuotavat 19. tammikuuta 2038 klo 03:14:07 UTC (aikaleima 2 147 483 647). Sekuntia myöhemmin laskuri muuttuu negatiiviseksi, ja tällaiset järjestelmät tulkitsevat sen joulukuuksi 1901. Nykyaikaiset 64-bittiset järjestelmät eivät ole vaarassa — 64-bittinen laskuri riittää noin 292 miljardia vuotta — mutta vanhat sulautetut laitteet, vanhentuneet tiedostomuodot ja 32-bittisiä kenttiä käyttävät tietokannat vaativat yhä huomiota.

Nykyisen Unix-aikaleiman haku koodissa

Sekunteina, ellei toisin mainita.

# Shell
date +%s

# JavaScript (ms → s)
Math.floor(Date.now() / 1000)

# Python
import time; int(time.time())

# Perl
time

# PHP
time()

# MySQL
SELECT UNIX_TIMESTAMP();

# C#
DateTimeOffset.UtcNow.ToUnixTimeSeconds()

# Swift
Int(Date().timeIntervalSince1970)

# Kotlin / Java
System.currentTimeMillis() / 1000

Unix-aikaleiman muuntaminen päivämääräksi koodissa

# Shell (GNU/Linux)
date -u -d @1700000000

# Shell (macOS/BSD)
date -u -r 1700000000

# JavaScript (ms)
new Date(1700000000 * 1000).toISOString()

# Python
from datetime import datetime, timezone
datetime.fromtimestamp(1700000000, tz=timezone.utc)

# Perl
scalar gmtime(1700000000)

# PHP
gmdate('Y-m-d H:i:s', 1700000000)

# MySQL
SELECT FROM_UNIXTIME(1700000000);

# C#
DateTimeOffset.FromUnixTimeSeconds(1700000000).UtcDateTime

# Swift
Date(timeIntervalSince1970: 1700000000)

# Kotlin / Java
java.time.Instant.ofEpochSecond(1700000000)

Merkittäviä Unix-aikaleimoja

Pyöreitä lukuja ja virstanpylväitä, joihin kehittäjät törmäävät lokeissa, testidatassa ja vikailmoituksissa. Kaikki ajat UTC-aikaa.

AikaleimaPäivämäärä (UTC)Miksi se on tärkeä
01970-01-01 00:00:00Itse Unix-epookki. Vuoden 1970 päivämäärä tarkoittaa yleensä puuttuvaa tai nolla-arvoa.
10000000002001-09-09 01:46:40Ensimmäinen 10-numeroinen aikaleima (”billennium”).
12345678902009-02-13 23:31:30Peräkkäiset numerot, joita kehittäjät juhlivat ympäri maailmaa.
15000000002017-07-14 02:40:001,5 miljardia sekuntia.
17000000002023-11-14 22:13:201,7 miljardia sekuntia.
20000000002033-05-18 03:33:202 miljardia sekuntia.
21474836472038-01-19 03:14:07Suurin etumerkillinen 32-bittinen arvo — vuoden 2038 ongelma.

Näin muunnat Unix-aikaleiman

Aikaleimasta päivämääräksi: liitä luku yllä olevaan muuntimeen. Yksikkö tunnistetaan pituudesta — 10 numeroa on sekunteja, 13 millisekunteja — ja tulos näytetään UTC-aikana, paikallisessa aikavyöhykkeessäsi ja suhteellisena aikana. Ei rekisteröitymistä, mikään ei poistu selaimestasi.

Päivämäärästä aikaleimaksi: valitse päivämäärä ja kellonaika, kerro tulkitaanko ne paikalliseksi ajaksi vai UTC-ajaksi, ja saat arvon sekunteina ja millisekunteina — valmiina SQL-kyselyihin, tunnisteiden vanhenemisaikoihin tai rajapintaparametreihin.

Nopea tarkistus vianetsinnässä: jos päivämäärä näkyy datassasi tammikuuna 1970, olet lähes varmasti käsitellyt sekunteja millisekunteina (tai saanut arvon 0/null). Jos se on kymmeniätuhansia vuosia tulevaisuudessa, olet tehnyt päinvastoin.

Usein kysyttyä

Onko Unix-aikaleima sekunteina vai millisekunteina?

Kumpikin on yleinen. 10-numeroinen arvo on sekunteja (Unix-työkalut, PHP, MySQL, Python), 13-numeroinen millisekunteja (JavaScript, Java). Jaa luvulla 1 000 siirtyäksesi millisekunneista sekunteihin.

Riippuuko Unix-aika aikavyöhykkeestä?

Ei. Unix-aika lasketaan aina UTC-aikana, joten samalla hetkellä on sama aikaleima kaikkialla maailmassa. Aikavyöhyke vaikuttaa vasta, kun aikaleima muotoillaan luettavaksi päivämääräksi.

Sisältävätkö Unix-aikaleimat karkaussekunnit?

Eivät. Jokainen vuorokausi on täsmälleen 86 400 sekuntia. Karkaussekunnin sattuessa käyttöjärjestelmät toistavat sen tai ”levittävät” sen, joten Unix-aika pysyy siistinä, jatkuvana laskurina.

Voiko Unix-aikaleima olla negatiivinen?

Voi. Negatiiviset arvot tarkoittavat hetkiä ennen 1. tammikuuta 1970. Esimerkiksi -86400 on 31. joulukuuta 1969 klo 00:00 UTC. Kaikki järjestelmät eivät käsittele negatiivisia aikaleimoja oikein, joten testaa ennen kuin luotat niihin.

Miten saan nykyisen Unix-aikaleiman?

Suorita date +%s Linux- tai macOS-päätteessä, kutsu Math.floor(Date.now() / 1000) JavaScriptissä tai int(time.time()) Pythonissa. Esimerkkejä muille kielille löytyy yllä.

Mikä aikaleima on ”nyt”?

Tämän sivun yläosan reaaliaikainen laskuri — se päivittyy sekunnin välein ja kopioituu yhdellä napsautuksella.

Lisää ilmaisia kehittäjätyökaluja

Sama idea: nopeita, ilmaisia ja kaikki toimii selaimessasi.