Расчёт даты из Unix timestamp: формула, примеры и онлайн-калькулятор
- Unix timestamp — это количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC.
- Формула перевода: Дата = 1970-01-01 + (timestamp / 86400) дней, где 86400 — количество секунд в сутках.
- Для перевода даты в timestamp нужно вычислить количество дней с 1970-01-01, умножить на 86400 и учесть часовой пояс.
- В 2026 году для точного перевода учитывайте високосные годы, но основной алгоритм не меняется.
- Что такое Unix timestamp и зачем он нужен?
- Формула перевода Unix timestamp в дату
- Пример 1: Простой перевод timestamp в дату
- Пример 2: Перевод текущей даты в timestamp
- Пример 3: Обратный перевод с учетом времени и часового пояса
- Типичные ошибки при расчетах
- Как проверить себя онлайн?
- Как перевести дату в timestamp быстро и без формул?
- Что делать, если timestamp отрицательный?
Что такое Unix timestamp и зачем он нужен?
Представьте, что время — это непрерывная линия, а Unix timestamp — это метка на этой линии, которая показывает, сколько секунд прошло с 1 января 1970 года (начала эпохи Unix). Это как номер шага от старта. Зачем это нужно? Компьютерам удобнее считать секунды, чем разбираться с месяцами и високосными годами. Timestamp используется в базах данных, логах, API — везде, где важна точность и универсальность. Например, когда вы загружаете фото в соцсеть, сервер может сохранить timestamp момента съемки. Поняв, как перевести timestamp в дату, вы сможете расшифровать любое такое число.
Формула перевода Unix timestamp в дату
Формула простая:
Где:
- timestamp — заданное количество секунд;
- 86400 — количество секунд в одном дне (60 × 60 × 24);
- 1970-01-01 — начало отсчета эпохи Unix.
Результат — количество дней, прошедших с начала эпохи. Добавив их к 1 января 1970 года, получим дату. Обратите внимание: timestamp обычно задается в UTC, поэтому при переводе в локальное время нужно учесть часовой пояс (например, +3 часа для Москвы).
Пример 1: Простой перевод timestamp в дату
Допустим, у нас есть timestamp 1745712000. Как получить дату?
- Шаг 1. Делим timestamp на 86400: 1745712000 ÷ 86400 = 20205 дней.
- Шаг 2. Прибавляем 20205 дней к 1970-01-01. Это примерно: 1970 + 20205/365.25 ≈ 1970 + 55.3 года = 2025.3, то есть середина 2025 года.
- Шаг 3. Точный расчет (с учетом високосных): 20205 дней = 55 лет + 110 дней (55 лет × 365 + 14 високосных дней = 20075 + 14 = 20089; 20205 - 20089 = 116 дней). От 1970-01-01 + 55 лет = 2025-01-01, + 116 дней = 2025-04-27.
- Итог: 1745712000 соответствует 2025-04-27 00:00:00 UTC. Если вы в Москве, добавьте 3 часа — получится 2025-04-27 03:00:00 MSK.
Пример 2: Перевод текущей даты в timestamp
Возьмем сегодняшнюю дату — 17 июля 2026 года (2026-07-17). Переведем в timestamp в UTC. Если у вас московское время, сначала вычтите 3 часа (в UTC 17 июля 2026 00:00 MSK = 16 июля 2026 21:00 UTC). Для простоты будем считать, что дата в UTC — 2026-07-17 00:00:00.
- Шаг 1. Количество дней от 1970-01-01 до 2026-07-17: считаем количество полных лет с 1970 по 2025 (56 лет, из них високосных: 1972, 1976, ..., 2024 — 14 високосных). Дней в 56 годах: 56×365 + 14 = 20440 + 14 = 20454 дня. Затем дни с 2026-01-01 по 2026-07-17: январь 31, февраль 28, март 31, апрель 30, май 31, июнь 30, июль 17 = 31+28+31+30+31+30+17 = 198 дней. Всего: 20454 + 198 = 20652 дня.
- Шаг 2. Умножаем на 86400: 20652 × 86400 = 1 784 332 800 секунд.
- Итог: 2026-07-17 00:00:00 UTC соответствует timestamp 1784332800.
Проверить можно с помощью Калькулятора Unix timestamp на нашем сайте.
- 1Запишите timestamp
Например, 1745712000.
- 2Разделите на 86400
Получите количество дней от 1970-01-01.
- 3Определите целые дни
Отбросьте дробную часть — это остаток секунд.
- 4Прибавьте дни к 1970-01-01
Посчитайте дату, учитывая високосные годы.
- 5Переведите остаток в часы/минуты
Разделите остаток секунд на 3600 и 60.
- 6Скорректируйте часовой пояс
Если нужно, добавьте смещение от UTC.
Пример 3: Обратный перевод с учетом времени и часового пояса
Пусть timestamp = 1720000000. Нужно получить дату и время в Москве (UTC+3).
- Шаг 1. Делим на 86400: 1720000000 ÷ 86400 ≈ 19907.4074 дней. Целая часть 19907 дней.
- Шаг 2. Остаток: 1720000000 - 19907×86400 = 1720000000 - 1720004800 = -4800? Ошибка! Правильно: 19907×86400 = 1 720 000 800? Нет, 19907×86400 = 1 720 044 800? Давайте аккуратно: 86400×19907 = 86400×20000 - 86400×93 = 1 728 000 000 - 8 035 200 = 1 719 964 800. Тогда остаток: 1720000000 - 1719964800 = 35200 секунд. Итак, 19907 дней и 35200 секунд.
- Шаг 3. 35200 секунд = 9 часов 46 минут 40 секунд (35200 ÷ 3600 = 9.777... часов, остаток 35200 - 9×3600 = 2800 сек; 2800 ÷ 60 = 46.666..., остаток 2800 - 46×60 = 40 сек).
- Шаг 4. Дата: 19907 дней от 1970-01-01. Делим на 365.25: примерно 54.5 года. Точнее: 54 года × 365 = 19710 дней, високосных в 1970-2024: 14, итого 19710+14=19724? Нет, надо считать аккуратно. От 1970 до 2024 (54 года) високосных: 1972,1976,...,2020 (13 штук) + 2024 (14-й). 54×365+14=19710+14=19724 дня. 19907 - 19724 = 183 дня после 2024-01-01. 183-й день 2024 года? 2024 високосный, значит 183-й день — это 1 июля? Считаем: январь 31, фев 29, март 31, апр 30, май 31, июнь 30 = 31+29+31+30+31+30=182, 183-й — 1 июля. Итак, дата в UTC: 2024-07-01 09:46:40.
- Шаг 5. Добавляем 3 часа для Москвы: 2024-07-01 12:46:40 MSK.
Итак, timestamp 1720000000 соответствует 1 июля 2024 года, 12:46:40 по Москве.
🧠 Проверьте свои знания
1. Сколько секунд в одном дне?
2. Какое начало отсчета у Unix timestamp?
3. Если timestamp равен 0, какая это дата?
4. Как перевести дату в timestamp?
Типичные ошибки при расчетах
- Забыть про часовой пояс: Timestamp всегда в UTC. Если не скорректировать на свой часовой пояс, можете ошибиться на несколько часов.
- Не учитывать високосные годы: При ручном счете дней легко пропустить 29 февраля, что приведет к ошибке в 1 день для дат после февраля високосного года.
- Перепутать порядок: Из timestamp в дату — деление на 86400. Из даты в timestamp — умножение количества дней на 86400. Не наоборот!
Как проверить себя онлайн?
Лучший способ избежать ошибок — воспользоваться Калькулятором даты из Unix timestamp. Просто введите число — и получите дату. А если нужно перевести дату в timestamp, используйте Калькулятор Unix timestamp. Эти инструменты работают в реальном времени и учитывают часовой пояс (если настроить).
Как перевести дату в timestamp быстро и без формул?
Для быстрых вычислений можно использовать онлайн-калькуляторы, но если нужно сделать это в уме, запомните: количество секунд в сутках — 86400, а начало отсчета — 1970. Для оценки можно считать, что 1 год ≈ 31 536 000 секунд (365 дней). Но точные расчеты лучше доверить программам. Наш сайт предлагает не только калькулятор для Unix timestamp, но и смежные инструменты: Калькулятор даты через N дней и Калькулятор даты N дней назад. Они пригодятся в повседневных задачах.
Что делать, если timestamp отрицательный?
Timestamp может быть отрицательным для дат до 1970 года. Например, -86400 соответствует 31 декабря 1969 года. Формула та же: прибавляйте отрицательное количество дней к 1970-01-01. В остальном правила не меняются. Однако большинство систем не поддерживают даты до 1970 года, поэтому на практике это встречается редко.
🧮 Посчитайте сами — инструменты по теме
🧭 Разделы по теме
Частые вопросы
Как перевести Unix timestamp в обычную дату в Excel?
В Excel дата и время хранятся в виде чисел, где 1 = 1 день. Для перевода timestamp в дату разделите его на 86400 и прибавьте к дате 1 января 1970 года: = (A1/86400) + DATE(1970,1,1). Отформатируйте ячейку как дату.
Почему timestamp считается от 1970 года?
1970 год был выбран как начало эпохи Unix из-за удобства: это относительно недавняя дата, и 32-битные целые числа могут охватить около 136 лет. Сейчас чаще используют 64-битные, но стандарт остался.
Что такое Unix timestamp в миллисекундах?
Это количество миллисекунд с 1970-01-01, а не секунд. Чтобы перевести, разделите на 1000. Например, 1745712000000 мс = 1745712000 сек.
Как учесть часовой пояс при переводе?
Timestamp всегда в UTC. Чтобы получить локальное время, добавьте смещение вашего часового пояса: для Москвы +3 часа (или +4 в летнее, если применяется). Или используйте онлайн-калькулятор с выбором часового пояса.
Какой timestamp будет 1 января 2026 года в 00:00 UTC?
Считаем дни от 1970-01-01 до 2026-01-01: 56 лет × 365 + 14 високосных дней = 20454 дня. 20454 × 86400 = 1767225600. Ответ: 1767225600.
Может ли timestamp быть отрицательным?
Да, для дат до 1970 года. Например, -86400 соответствует 31 декабря 1969 года. Такие timestamp редко используются, но формально допустимы.
Какой самый большой timestamp возможен?
Для 32-битного целого со знаком максимум 2147483647 (соответствует 19 января 2038 года). Это известная проблема '2038 года'. 64-битные системы позволяют гораздо большие значения.