UNIX Timestamp Конвертор (онлайн преобразувател на UNIX време)

Текущ UNIX timestamp

Секунди
Милисекунди

Timestamp → Дата и час


Дата и час → Timestamp

UNIX Timestamp Конвертор (онлайн преобразувател на UNIX време)

Този UNIX timestamp конвертор ви позволява бързо да преобразувате UNIX време (epoch time / POSIX time) в дата и час и обратно. Поддържа timestamp в секунди и милисекунди, показва местно време, UTC и ISO 8601, а резултатите могат да бъдат копирани с едно кликване.


Какво е UNIX timestamp (epoch time / POSIX time)?

UNIX timestamp е число, което изразява времето като брой секунди от 1 януари 1970 г., 00:00:00 UTC (т.нар. UNIX epoch). На практика това е един от най-използваните формати за съхранение и прехвърляне на дата и час в системи, бази данни, API и регистриране.

Пример: 1700000000 съответства на дата 14 ноември 2023 г. 22:13:20 UTC.

Защо точно 1 януари 1970 г.?

Началото на епохата (1970-01-01) е избрано при проектирането на UNIX като практическа референтна точка: то е близо до периода на създаване на системата и позволява прости изчисления на времето.


UNIX timestamp в секунди срещу милисекунди

UNIX timestamp най-често се среща в две форми:

Формат на timestampПримерТипична употреба
Секунди (s)1700000000бази данни, бекенд, API, файлове
Милисекунди (ms)1700000000000JavaScript (Date.now()), анализи, подробни логове

Как да разберете какво имате?

  • Секундите за „днешни“ дати обикновено имат 10 цифри.
  • Милисекундите обикновено имат 13 цифри и са приблизително 1000 пъти по-големи.
  • Ориентировъчно: ако стойността е > 10¹², почти сигурно става въпрос за милисекунди.

Как да използвате UNIX timestamp конвертора

1) Timestamp → Дата и час

  1. Въведете UNIX timestamp в полето или кликнете върху Сега (текущ UNIX час).
  2. Ако timestamp е в милисекунди, активирайте опцията Милисекунди.
  3. Кликнете върху Конвертирай (или натиснете Enter).
  4. Ще се покаже преобразуването в местно време, UTC и ISO 8601.
  5. Кликнете върху резултата, за да го копирате в клипборда.

2) Дата и час → Timestamp

  1. Изберете дата и час във формата.
  2. Кликнете върху Конвертирай.
  3. Ще получите резултата като timestamp в секунди и милисекунди.

Къде се използва UNIX timestamp най-често?

UNIX времето се среща практически навсякъде, където се работи с време в ИТ:

  • Бази данни – съхранение и сравнение на времена в MySQL, PostgreSQL, SQLite и др.
  • API – REST/GraphQL често връщат времето като timestamp (лесна сериализация).
  • Логове и мониторинг – точно подреждане на събития във времето.
  • Git – коммитите съдържат времеви данни.
  • Файлови системи – времена като mtime/ctime/atime (последна промяна и др.).
  • JWTiat (issued at) и exp (expires) са типично в епохови секунди.
  • Linux/Unix shelldate +%s връща текущия timestamp.
  • JavaScriptDate.now() връща времето в милисекунди.

Практически примери за преобразуване на UNIX време

JavaScript (timestamp ↔ дата)

// Текущ UNIX timestamp в секунди
const tsSeconds = Math.floor(Date.now() / 1000);

// Текущ timestamp в милисекунди
const tsMs = Date.now();

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

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

Python (timestamp ↔ datetime)

import time
from datetime import datetime, timezone

# Текущ timestamp в секунди
ts = int(time.time())

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

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

SQL (MySQL)

-- Текущ UNIX timestamp (s)
SELECT UNIX_TIMESTAMP();

-- Timestamp -> дата
SELECT FROM_UNIXTIME(1700000000);

-- Дата -> timestamp
SELECT UNIX_TIMESTAMP('2024-01-01 00:00:00');

Часови зони: UTC, местно време и ISO 8601

UNIX timestamp винаги е в UTC – не съдържа информация за часова зона или лятно часово време. Преобразуването в местно време зависи от настройките на браузъра, сървъра или използваната библиотека.

Понятия, които е добре да се знаят:

  • UTC – глобален стандарт без лятно/зимно часово време.
  • GMT – за обикновена употреба е практически идентично с UTC.
  • Отместване – изместване спрямо UTC (например, София UTC+2 през зимата, UTC+3 през лятото).

Ограничения на UNIX timestamp и Проблемът от 2038 година

Проблемът от 2038 година (Year 2038 Problem)

На някои 32-битови системи timestamp се съхранява като int32 с максимум 2 147 483 647, което съответства на 19 януари 2038 г. 03:14:07 UTC. При превишаване може да възникне препълване и неправилно време. Модерните 64-битови системи обикновено нямат този проблем.

Обхват на 64-битовото UNIX време

64-битовите стойности покриват изключително широк период (на практика „завинаги“). Отрицателните стойности означават дата преди 1 януари 1970 г.


ЧЗВ – често задавани въпроси за UNIX timestamp

UNIX timestamp в UTC ли е, или в местно време? UNIX timestamp винаги е в UTC. Местното време възниква само при преобразуване според часовата зона. Ето защо конверторът обикновено показва UTC и местното време.
Как да разбера дали timestamp е в секунди или милисекунди? За текущия момент timestamp в секунди типично има 10 цифри. В милисекунди има 13 цифри и е приблизително 1000 пъти по-голям. Ориентировъчно: стойност > 10¹² обикновено е милисекунди.
Какво означава отрицателен UNIX timestamp? Отрицателен timestamp представлява дата преди 1 януари 1970 г.. Например -1 съответства на 31 декември 1969 г. 23:59:59 UTC.
Как да преобразувам UNIX timestamp в SQL? В MySQL използвате FROM_UNIXTIME(timestamp) и обратно UNIX_TIMESTAMP(дата). В PostgreSQL обикновено е TO_TIMESTAMP(timestamp) и EXTRACT(EPOCH FROM дата).
Защо UNIX epoch започва на 1 януари 1970 г.? Това е исторически избрана референтна точка от ранните дни на UNIX: проста, практична и близка до времето на разработка на системата.