Unix timestamp это количество секунд, прошедших с полуночи 1 января 1970 года по UTC. Чтобы перевести его в дату, разделите метку на 86 400 (столько секунд в сутках) и прибавьте результат к 1 января 1970 года, а для московского времени добавьте ещё 3 часа (это верно для дат начиная с 26 октября 2014 года).
Чаще всего путают секунды с миллисекундами или принимают время по UTC за местное.
Секунды или миллисекунды в Unix timestamp
Подсказку даёт число цифр. Для современных дат метка из 10 цифр обычно записана в секундах, а метка из 13 цифр в миллисекундах. Точнее единицу скажет документация системы, из которой взята метка.
| Цифр в метке | Единица | Что сделать |
|---|---|---|
| 10 | секунды | вставить как есть |
| 13 | миллисекунды | разделить на 1 000 или в Google Таблицах указать единицу 2 |
| 16 | микросекунды | разделить на 1 000 000 или указать единицу 3 в EPOCHTODATE |
Десять цифр метка в секундах имеет для дат с 9 сентября 2001 года до 20 ноября 2286 года, так что для современных меток в логах и выгрузках правило работает.
Если дата получилась в далёком будущем или программа выдала ошибку, скорее всего, миллисекунды посчитали секундами. Если дата оказалась в январе 1970 года, ошибка обратная. Программа ждала миллисекунды, а получила секунды, и число вышло в тысячу раз меньше нужного.
Часовой пояс при переводе Unix timestamp
В самой метке времени нет часового пояса. Отсчёт всегда идёт от одного и того же момента по UTC, а пояс появляется только тогда, когда число показывают в виде даты.
Московское время по закону «Об исчислении времени» соответствует UTC+3. Так сказано в статье 5 закона № 107-ФЗ (редакция от 14 апреля 2023 года, текст проверен 29 октября 2026 года). Всего эта статья устанавливает 11 часовых зон, от UTC+2 в Калининградской области до UTC+12, поэтому для других регионов смещение будет другим. Для постоянного смещения UTC+N в таблице прибавляйте N/24 вместо 3/24, а для поясов с переходом на летнее время такая поправка в части года ошибётся.
Для старых меток учитывайте историю. По справке КонсультантПлюс (проверено 29 октября 2026 года) нынешний порядок действует с 2 часов 26 октября 2014 года, а до этого московское время соответствовало UTC+4. Для дат раньше этого дня прибавка 3/24 даст ошибку на час, а для ещё более ранних дат смещение тоже могло быть другим.
Как перевести Unix timestamp в дату в Excel
В Excel метку переводят формулой =A1/86400+ДАТА(1970;1;1), а для московского времени к ней прибавляют 3/24.
- Вставьте метки в столбец A, начиная с ячейки A1.
- В ячейку B1 введите =A1/86400+ДАТА(1970;1;1). Это дата и время по UTC.
- Для московского времени используйте =A1/86400+ДАТА(1970;1;1)+3/24. Значение 3/24 это три часа как часть суток.
- Если вместо даты видно число или не видно времени, задайте ячейке формат даты и времени.
- Протяните формулу вниз на остальные строки.
Если метка в миллисекундах, сначала разделите её на 1 000, то есть замените в формуле A1 на A1/1000.
Для проверки возьмите метку 1793276763. Она соответствует 29 октября 2026 года, 12 часам 26 минутам 3 секундам по UTC, по московскому времени это 15 часов 26 минут 3 секунды.
Системы дат 1900 и 1904
Excel хранит даты как серийные числа. По справке Microsoft (проверено 29 октября 2026 года), в системе 1900 дате 1 января 1900 года соответствует число 1. Там же сказано, что по умолчанию Excel для Windows работает в системе 1900, а Excel для Mac в системе 1904, и разница между ними составляет 1 462 дня. Но в другой справке Microsoft о системах дат уточняется, что во всех новых версиях Excel даты считаются по системе 1900, а система 1904 использовалась в более старых версиях. Так что книгу с системой 1904 скорее можно встретить среди старых файлов.
Поэтому пишите в формуле ДАТА(1970;1;1), а не готовое число 25569, которое часто советуют. Число 25569 соответствует 1 января 1970 года только в системе 1900, и в книге с системой 1904 результат сместится на 1 462 дня. Функция ДАТА считает дату по системе текущей книги, так что формула с ней должна работать в обеих системах. В книге с системой 1904 мы это не проверяли, поэтому сверьте одну строку с онлайн-инструментом.
Как перевести Unix timestamp в дату в Google Таблицах
В Google Таблицах для этого есть функция EPOCHTODATE(временная_метка; [единица]), она возвращает дату и время по UTC.
По справке Google (проверено 29 октября 2026 года), второй аргумент задаёт единицу. Значение 1 означает секунды и используется по умолчанию, 2 означает миллисекунды, 3 микросекунды. Время возвращается по всемирному координированному времени, а не по часовому поясу из настроек таблицы. Отрицательные метки, то есть даты до 1970 года, функция не принимает, а дробные доли миллисекунд отбрасывает.
Формула =EPOCHTODATE(A1) вернёт время по UTC. Для московского времени добавьте 3/24, получится =EPOCHTODATE(A1)+3/24. Для метки в миллисекундах укажите вторым аргументом 2.
Готовые формулы для Excel и Google Таблиц
Формулы ниже рассчитаны на метку в ячейке A1. Мы собрали их по справкам Microsoft и Google, но в самих программах не запускали, поэтому перед обработкой большого файла проверьте формулу на одной известной метке.
| Программа | Метка и результат | Формула |
|---|---|---|
| Excel | секунды, UTC | =A1/86400+ДАТА(1970;1;1) |
| Excel | секунды, МСК | =A1/86400+ДАТА(1970;1;1)+3/24 |
| Excel | миллисекунды, МСК | =A1/1000/86400+ДАТА(1970;1;1)+3/24 |
| Google Таблицы | секунды, UTC | =EPOCHTODATE(A1) |
| Google Таблицы | секунды, МСК | =EPOCHTODATE(A1)+3/24 |
| Google Таблицы | миллисекунды, МСК | =EPOCHTODATE(A1;2)+3/24 |
Перевод Unix timestamp в дату в JavaScript
В JavaScript метку в секундах нужно умножить на 1 000, потому что объект Date работает с миллисекундами.
В документации MDN (проверено 29 октября 2026 года) сказано, что объект Date содержит число миллисекунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года. Этот момент называют «эпохой Unix». Конструктор тоже ждёт миллисекунды, и метку в секундах передают в виде new Date(1793276763 * 1000). Число в примере условное и не относится к какому-либо событию.
Если передать в new Date() метку в секундах без умножения, вы получите дату в январе 1970 года. Метод toString() показывает дату в часовом поясе устройства, а toUTCString() по UTC.
Онлайн-перевод в инструменте «Unix Timestamp в Дату»
Если таблица не нужна и надо перевести одну метку, удобнее онлайн-инструмент. Инструмент «Unix Timestamp в Дату» сделали мы, команда Digily Link, и пользоваться им можно без регистрации.
- Откройте инструмент. В поле «Метка времени Unix» сразу стоит текущее время сервера, замените его своей меткой.
- Проверьте длину числа. Инструмент считает, что метка указана в секундах. Если в числе 13 цифр, это миллисекунды, поэтому уберите последние три цифры перед вставкой. Доли секунды при этом пропадут.
- Нажмите «Отправить».
- Посмотрите результат. Он показывается дважды, в строке «UTC» и в строке «Ваш часовой пояс».
Расчёт идёт в браузере, и «Ваш часовой пояс» означает пояс вашего устройства. Если устройство настроено не на московское время, возьмите строку «UTC» и прибавьте 3 часа. Даты до 1970 года (отрицательные метки) инструмент не принимает. Результат выводится в стандартном текстовом формате JavaScript, поэтому дни недели и месяцы будут английскими сокращениями.
Перевести метку времени в дату онлайн
Обратный перевод даты в Unix timestamp
Для обратной задачи есть отдельный инструмент «Дата в Unix Timestamp». В нём вы указываете год, месяц, день, часы, минуты и секунды, а затем выбираете часовой пояс из списка. Метку считает сервер. Это удобно, когда нужно проверить формулу из таблицы или подставить метку в запрос к API. Открыть его можно по ссылке перевести дату в Unix timestamp.