Tech Help

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 не рахує високосні секунди як зайві секунди SI на неперервній шкалі. Платформи можуть відрізнятися. Для повсякденного перетворення цю деталь можна ігнорувати.

Часті помилки при перетворенні 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) — секунди.

Tech Help

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

Якщо Unix timestamp перетворюється на дату близько 1970, часто секунди прочитали як мілісекунди. Як розрізнити одиниці.

Tech Help

JPG проти PNG для знімків екрана: який менший?

Обирайте JPG або PNG для знімка за вмістом: UI і текст часто лишаються чіткішими як PNG; кадри, багаті на світлину, можуть бути меншими як JPEG.

Tech Help

Чому JSON.parse каже "Unexpected token"?

JSON.parse кидає Unexpected token, коли текст не є чинним JSON. Налагоджуйте одинарні лапки, кінцеві коми, HTML-відповіді й позицію помилки.

Tech Help

Як зменшити розмір файлу зображення, не зробивши його розмитим

Зменште розмір файлу світлини й зображення, зберігаючи прийнятну візуальну якість. Спершу змініть надмірні розміри, потім стисніть помірно, потім оберіть доречний формат.

Tech Help

Чому Base64 збільшує файли?

Base64 зазвичай робить двійкові дані приблизно на третину більшими. Побачте структуру з 3 байтів у 4 символи, доповнення, додаток Data URL і коли цей розмір вартий того.