Техподдержка

Unix Timestamp в дату: секунды, миллисекунды и UTC

Переведите Unix timestamp в дату. Секунды против миллисекунд, UTC против местного времени, ISO 8601 и обратный путь от даты к epoch-времени.

Короткий ответ

Unix timestamp представляет время относительно Unix epoch: 1970-01-01 00:00:00 UTC. Обычно его хранят как секунды с epoch либо как миллисекунды с epoch.

Чтобы перевести верно, сначала нужно знать единицу. 1720000000 секунд — это 2024-07-03 09:46:40 UTC. 1720000000000 миллисекунд — тот же момент.

Timestamp указывает момент. UTC, местное время или зона IANA меняют только то, как этот момент показывают.

Это руководство по преобразованию: timestamp в дату, дата в timestamp, UTC против местного, и ISO 8601. Если значение внезапно становится датой 1970, обычно это расхождение секунд и миллисекунд — см. Unix Timestamp: секунды против миллисекунд — почему дата показывает 1970.

Что такое Unix Timestamp?

Unix timestamp, Unix time и epoch time обычно означают время, прошедшее с 1970-01-01 00:00:00 UTC. Число — не отформатированная строка даты с меткой часового пояса. Один и тот же момент может показаться разным временем в UTC, Нью-Йорке, Токио или Сеуле. Unix timestamp не всегда в секундах — на практике миллисекунды встречаются часто.

Что такое Unix epoch?

Unix epoch — это 1970-01-01 00:00:00 UTC. Timestamp 0 — этот момент. Положительный timestamp — после epoch. Некоторые системы допускают отрицательный timestamp для времени до epoch, но поддержка языка и диапазона дат разная.

Мой timestamp в секундах или в миллисекундах?

1720000000 — секунды; 1720000000000 — миллисекунды; это один момент. Практическая подсказка: около 10 цифр часто означают секунды, около 13 — миллисекунды. Число цифр — лишь эвристика. Прошлые или будущие даты, другие единицы или свой epoch могут выглядеть иначе. Конвертер даты и времени переводит секунды, миллисекунды или авто (≤10 цифр как секунды, ≥13 как миллисекунды) — выбирайте единицу, когда она известна.

Почему неверная единица даёт неверную дату?

JavaScript Date ожидает миллисекунды. Передача 1720000000 как миллисекунд даёт 1970-01-20 21:46:40 UTC. Чтение миллисекунд как секунд или наоборот попадает на совсем другую дату. Путь диагностики 1970 — см. Unix Timestamp: секунды против миллисекунд — почему дата показывает 1970.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

Как перевести Unix timestamp в секундах

Умножьте секунды на 1000, чтобы получить миллисекунды. JavaScript Date основан на миллисекундах, поэтому используйте new Date(timestamp * 1000).

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Как перевести timestamp в миллисекундах

Передайте миллисекунды в Date напрямую. Не умножайте ещё раз на 1000 timestamp, который уже в миллисекундах.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Почему один и тот же timestamp показывает другое время?

Unix timestamp — один момент. Показ в UTC, местном времени или выбранной зоне IANA меняет циферблат. Для 1720000000000 UTC — 2024-07-03 09:46:40. America/New_York в этот день — 2024-07-03 05:46:40 (EDT). Asia/Seoul — 2024-07-03 18:46:40 (UTC+9). Значения Нью-Йорка и Сеула получены через Intl, а не из лозунга о фиксированном смещении.

Содержит ли Unix timestamp часовой пояс?

Нет. Он не хранит America/New_York или Asia/Seoul. Timestamp указывает момент. Пояс применяют, когда форматируют этот момент в читаемые дату и время. Epoch определён относительно UTC; само число — не «поле пояса UTC».

Unix Timestamp и ISO 8601

1720000000 и 2024-07-03T09:46:40Z могут обозначать один момент. Unix — числовое значение прошедшего времени. ISO 8601 — читаемая строка даты и времени и может заканчиваться на Z (UTC) или числовое смещение. Z значит UTC; иногда это называют Zulu. Это не один формат.

Как получить текущий Unix timestamp?

В JavaScript Date.now() — миллисекунды. Math.floor(Date.now() / 1000) — секунды. Не фиксируйте «сейчас» в статье: оно движется.

Date.now();
Math.floor(Date.now() / 1000);

Можно ли перевести дату обратно в Unix timestamp?

Да. Из явной строки ISO UTC getTime() возвращает миллисекунды; разделите на 1000 и округлите вниз для секунд.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

Осторожнее с неоднозначными форматами даты

03/07/2024 может значить 7 марта или 3 июля — зависит от региона. Лучше дата и время в стиле ISO с поясом или смещением. Конвертер даты и времени отклоняет неоднозначные числовые даты вроде 01/02/2026 и просит выбор даты или значение в стиле ISO.

А летнее время?

Unix timestamp не хранит флаг летнего времени. Местный показ применяет правила зоны. America/New_York использует разные смещения зимой и летом, поэтому «Нью-Йорк — это UTC-5» не всегда верно.

Входят ли в Unix timestamp високосные секунды?

Типичное время POSIX/Unix не считает високосные секунды лишними секундами СИ на непрерывной шкале. Платформы могут отличаться. Для повседневного преобразования эту деталь можно не учитывать.

Частые ошибки при преобразовании Unix timestamp

Из-за этих путаниц получается неверная дата или неверные часы:

Секунды прочитаны как миллисекунды
Современное значение в секундах тогда оказывается около 1970 в JavaScript Date.

Миллисекунды прочитаны как секунды
Дата прыгает далеко в будущее.

Считать 10 или 13 цифр законом
Число цифр — подсказка, а не гарантия.

Путать UTC с местным временем
Момент один; показанные часы могут отличаться.

Считать, что пояс сидит внутри числа
Имена IANA применяют при показе, их не хранят в timestamp.

Неоднозначные даты, лозунги о летнем времени или лишний ×1000
Используйте ввод в стиле ISO. Не умножайте ещё раз timestamp в миллисекундах.

Проверенные примеры UTC

Эти часы UTC посчитаны, а не угаданы:

Ввод Единица UTC
0 секунды 1970-01-01 00:00:00
1720000000 секунды 2024-07-03 09:46:40
1720000000000 миллисекунды 2024-07-03 09:46:40
1720000000 миллисекунды 1970-01-20 21:46:40

Простое руководство по выбору преобразования

Если источник называет единицу, используйте её. Если нет, число цифр — подсказка, затем проверьте, что дата выглядит правдоподобно. Переведите секунды в миллисекунды, если API нужен ms. Для показа выберите UTC, местное время или зону IANA. ISO 8601 удобен для хранения и обмена.

  • Есть Unix timestamp
  • Единица указана? Используйте её; иначе проверьте величину
  • Секунды? ×1000, если API нужны миллисекунды
  • Миллисекунды? Используйте напрямую в API на ms
  • Показать как UTC, местное время или зону IANA
  • Нужна строка? Подойдёт ISO 8601
Число — это момент. Форматирование выбирает циферблат.
Timestamp — момент, а не формат отображения

Timestamp указывает точку во времени. UTC, местное время или пояс решают лишь, как этот момент показать человеку.

Преобразуйте Unix timestamp в браузере

NEXNARA Конвертер даты и времени переводит секунды и миллисекунды Unix, показывает UTC, местное время и ISO 8601 и преобразует между поясами IANA.

Режим Unix поддерживает секунды, миллисекунды, авто-единицу, текущее время и дату в timestamp. Режим пояса ищет имена IANA, берёт зону браузера и применяет смещения Intl с учётом летнего времени. Режим формата даёт читаемый региональный вывод, отображение 12/24 и защиту от неоднозначной даты. Разница дат — отдельный режим.

Преобразование использует API Date и Intl браузера. Значения вне того, что Date может представить, отклоняются. Авто-единица не угадывает значения из 11–12 цифр; выберите секунды или миллисекунды.

Само преобразование даты и timestamp выполняется в браузере. Ввод не отправляется на сервер NEXNARA для преобразования. Реклама и другие функции сайта по-прежнему используют сеть.

Вставьте timestamp в Конвертер даты и времени и сравните UTC, местное время и ISO 8601, прежде чем выбрать единицу.

FAQ

Как перевести Unix timestamp в дату?

Знайте единицу. В JavaScript для секунд: new Date(n * 1000). Для миллисекунд: new Date(n). Затем форматируйте как UTC, местное время или зону.

Unix timestamp в секундах или в миллисекундах?

Бывает и так, и так. Около 10 цифр часто означают секунды, около 13 — миллисекунды, но это эвристика, не правило.

Почему мой timestamp показывает 1970?

Обычно значение в секундах прочитали как миллисекунды. См. Unix Timestamp: секунды против миллисекунд — почему дата показывает 1970.

Unix timestamp всегда UTC?

Epoch определён относительно UTC, а число указывает момент. Пояс отображения отделён. Это не сохранённое «поле пояса UTC».

Содержит ли Unix timestamp часовой пояс?

Нет. Он не несёт идентификатор IANA. Пояс применяют при форматировании момента.

Как перевести дату в Unix timestamp?

Из строки ISO UTC date.getTime() — миллисекунды; Math.floor(date.getTime() / 1000) — секунды.

Техподдержка

Unix Timestamp: секунды против миллисекунд — почему дата показывает 1970

Если Unix timestamp превращается в дату около 1970, часто секунды прочитали как миллисекунды. Как отличить единицы измерения.

Техподдержка

JPG vs PNG для скриншотов: какой меньше?

Выбирайте JPG или PNG для скриншотов по содержимому: UI и текст часто остаются чётче как PNG; кадры с большим количеством фото могут быть меньше как JPEG.

Техподдержка

Почему JSON.parse говорит "Unexpected token"?

JSON.parse выбрасывает Unexpected token, когда текст не является допустимым JSON. Разберите одинарные кавычки, запятую в конце, HTML-ответы и позицию ошибки.

Техподдержка

Как уменьшить файл изображения, чтобы оно не стало размытым

Уменьшайте размер фото и изображений, сохраняя приемлемое качество. Сначала уменьшите лишние пиксели, затем умеренно сожмите и выберите подходящий формат.

Техподдержка

Почему Base64 делает файлы больше?

Base64 обычно увеличивает двоичные данные примерно на треть. Смотрите структуру 3 байта → 4 символа, дополнение, лишний размер Data URL и когда этот прирост оправдан.