Все калькуляторы
навигация перейти Esc закрыть
Дата-время

Unix timestamp: почему компьютеры считают время с 1970 года

В логах и ответах API вместо нормальной даты часто стоит длинное число вроде 1780477200. Это Unix timestamp — количество секунд, прошедших с 1 января 1970 года. Разбираем, почему компьютеру удобнее хранить время одним числом, чем датой, почему точка отсчёта именно 1970-й, чем секунды отличаются от миллисекунд и что за «проблема 2038 года» ждёт старые системы.

Содержание
  1. Компьютеру проще хранить время одним числом
  2. Точка отсчёта — 1 января 1970 года
  3. Timestamp не знает часовых поясов
  4. Секунды или миллисекунды
  5. Проблема 2038 года
  6. Коротко

Открыли логи сервера или ответ какого-нибудь API, а там вместо даты — длинное число: 1780477200. Или в токене авторизации поле exp с таким же числом. Это не код ошибки и не идентификатор. Это время, записанное так, как его удобно хранить компьютеру, — Unix timestamp. Разберём, что это за число и почему оно отсчитывается именно от 1970 года.

Компьютеру проще хранить время одним числом

Представьте, что нужно узнать, сколько времени прошло между двумя событиями. Человеку с датами это несложно на глаз, а машине — морока: в марте 31 день, в феврале 28 или 29, год бывает високосным, месяцы разной длины. Вычитать «3 июня минус 15 января» по календарю — значит помнить все эти правила.

Поэтому придумали хранить момент времени как одно целое число — сколько секунд прошло с некой стартовой точки. Тогда любые вычисления со временем превращаются в обычную арифметику:

Сколько прошло = timestamp сейчас − timestamp тогда
                 (просто вычитание двух чисел, в секундах)

Возраст события, срок жизни токена, «показать посты за последние 24 часа» — всё это становится вычитанием и сравнением чисел. Ни високосных лет, ни разной длины месяцев — ими займутся уже потом, когда число нужно будет показать человеку.

Точка отсчёта — 1 января 1970 года

Стартовую точку назвали эпохой Unix (Unix epoch) — это полночь 1 января 1970 года по UTC. Число вроде 1780477200 означает «столько-то секунд после этого момента». Выбор даты чисто практический: систему Unix создавали на рубеже 1960–70-х, и разработчикам была нужна круглая недавняя дата, от которой удобно вести счёт. Взяли начало 1970-го — и с тех пор так считает почти вся вычислительная техника.

1780477200 секунд от 01.01.1970 00:00:00 UTC = 3 июня 2026, 12:00 по Москве

Перевести число в дату и обратно вручную нереально — это делает конвертер Unix timestamp: вводите число, получаете дату в нужном часовом поясе, или наоборот.

Timestamp не знает часовых поясов

Важная деталь: само число одно для всей планеты. 1780477200 — это один и тот же миг для Москвы, Лондона и Владивостока. Разным будет только его человеческое написание: в Москве это 12:00, в Лондоне 09:00, во Владивостоке 19:00 — но момент физически один.

Это и есть главное удобство. Сервер в одном городе, пользователь в другом, база данных в третьем — все хранят время как единый timestamp в UTC и не путаются. Часовой пояс приклеивают в последний момент, когда дату показывают человеку. Как одно и то же время растекается по 11 часовым поясам России — отдельная история, но timestamp именно поэтому и удобен: он от поясов не зависит.

Секунды или миллисекунды

Иногда timestamp выглядит длиннее на три знака: не 1780477200, а 1780477200000. Это тот же момент, только в миллисекундах — счёт идёт не в секундах, а в тысячных долях. Так время хранит, например, JavaScript.

Миллисекундный timestamp = секундный × 1000
1780477200 сек = 1780477200000 мс

Практическое правило: 10 знаков — это секунды, 13 знаков — миллисекунды. Если подставить одно вместо другого, дата уедет в далёкое прошлое или будущее в тысячу раз.

Проблема 2038 года

У счёта времени есть предел. Старые системы хранят timestamp в 32-битном знаковом числе, а у него максимум — 2 147 483 647. Именно столько секунд от 1970 года истечёт 19 января 2038 года в 03:14:07 UTC. В следующую секунду счётчик переполнится и вместо 2038 года покажет декабрь 1901-го — уйдёт в минус.

Это близкий родственник «проблемы 2000 года»: тогда боялись двузначной записи года, здесь — переполнения счётчика секунд. Лечится переходом на 64-битные числа: их хватит на сотни миллиардов лет вперёд. Современные системы давно на 64 битах, но кое-где в старом железе и коде 32-битный timestamp ещё встречается — к 2038-му его нужно везде заменить.

Коротко

Unix timestamp — это время, записанное как одно число: секунды с 1 января 1970 года по UTC. Компьютеру так проще хранить моменты, вычитать их и сравнивать, не отвлекаясь на календарь и часовые пояса. Число одно для всей планеты, а дата и пояс появляются только когда время показывают человеку.

Частые вопросы

Что такое Unix timestamp?
Это способ записи момента времени одним числом — количеством секунд, прошедших с полуночи 1 января 1970 года по UTC (эпохи Unix). Например, 1780477200 — это 3 июня 2026 года, 12:00 по Москве. Компьютеры хранят время так, потому что с числом проще делать вычисления: разница между двумя моментами — это просто их вычитание.
Почему точка отсчёта — именно 1970 год?
Эту дату выбрали разработчики системы Unix на рубеже 1960–70-х годов: им была нужна круглая и недавняя точка, от которой удобно вести счёт секунд. Взяли 1 января 1970 года по UTC и назвали её эпохой Unix. С тех пор от неё отсчитывает время большинство операционных систем, языков программирования и баз данных.
Чем отличается timestamp в секундах от миллисекунд?
Это один и тот же момент, но в разных единицах. Секундный timestamp считает целые секунды (около 10 знаков), миллисекундный — тысячные доли секунды (около 13 знаков) и равен секундному, умноженному на 1000. В секундах время хранят Unix-системы и многие API, в миллисекундах — JavaScript. Перепутать их нельзя: дата уедет в тысячу раз.
Что за проблема 2038 года?
Старые системы хранят timestamp в 32-битном знаковом числе, максимум которого — 2 147 483 647 секунд. Этот предел наступит 19 января 2038 года в 03:14:07 UTC, после чего счётчик переполнится и покажет 1901 год. Это аналог «проблемы 2000 года». Решение — переход на 64-битные числа, которых хватит на миллиарды лет; современные системы уже на них.

Источники

обновлено 12 июля 2026
Посчитайте сейчас Конвертер Unix timestamp

Калькуляторы по теме статьи

Читайте также