Усі посібники

Перетворення мітки часу Unix на дату і дати на мітку часу

Опубліковано · Оновлено 2 хв читання

Мітка часу Unix відлічує час, що минув від 1 січня 1970 року, північ за всесвітнім часом. Дату результату визначають два питання: одиниця числа та часовий пояс, у якому читається результат.

Опорне значення

Конвертувати мітку часу Unix дає три прочитання одного й того самого моменту. Для 1700000000 за браузера, налаштованого на паризький час:

ПрочитанняРезультат
Дата UTCTue, 14 Nov 2023 22:13:20 GMT
Місцева дата14 листопада 2023 р. о 23:13:20 UTC+1
ISO2023-11-14T22:13:20.000Z

Місцевий час слідує за часовим поясом браузера: на годину більше в Парижі взимку. Одна й та сама мітка це один момент, прочитаний у двох часових поясах.

Одиниця визначається за кількістю цифр

Налаштування за замовчуванням визначає одиницю за довжиною числа. Три значення нижче позначають той самий момент, з точністю до точності.

ЧислоЦифриВизначена одиницяОтриманий момент
170000000010Секунди14 лист. 2023 р., 22:13:20 UTC
170000000000013Мілісекунди14 лист. 2023 р., 22:13:20 UTC
170000000012345616Мікросекунди14 лист. 2023 р., 22:13:20,123 UTC

Правило: до 11 цифр секунди; від 12 до 14 мілісекунди; 15 і 16 мікросекунди. Налаштування «мілісекунди» примусово задає цю одиницю.

Пастка правила

Оскільки одиниця виводиться з довжини, неоднозначне значення читається одним способом: 10000000000 (11 цифр) дає 20 листопада 2286 року, а 100000000000 (12 цифр) дає 3 березня 1973 року. Мітка в мілісекундах до березня 1973 року має 11 цифр або менше і була б прочитана як секунди: тоді примусово задайте налаштування «мілісекунди».

Значення до 1970 року й межа 2038 року

Від’ємне число позначає момент до 1970 року: −1 дає 31 грудня 1969 року, 23:59:59 UTC, а 0 дає 1 січня 1970 року, північ.

Число 2147483647 це найбільше, яке вміщує знакове 32-бітне ціле: воно дає 19 січня 2038 року, 03:14:07 UTC. Наступне число, 2147483648, дає 03:14:08: інструмент продовжує без обмеження, а система, що зберігає час у 32 бітах, не може.

Перетворення дати на мітку

Введіть дату замість числа: інструмент видає мітку в секундах і в мілісекундах.

ВведенняМітка в секундахПрочитання
2026-01-011767225600Північ за всесвітнім часом, часовий пояс не вказано
2026-01-01T10:30:00+01:00176725980010:30 у Парижі, тобто 09:30 за всесвітнім часом
2024-02-291709164800Високосний рік прийнято

Дата без часового поясу читається за всесвітнім часом, а не за місцевим: інструмент нагадує про це в результаті. Неіснуюча дата, як-от 30 лютого 2026 року, відхиляється з повідомленням.

Часті помилки

  • Читати мілісекунди як секунди: дата опиняється на тисячі років далі.
  • Забути про часовий пояс: дата, прочитана як місцева, а потім надіслана як всесвітня, зміщується на годину чи більше.
  • Записати дату без часового поясу, думаючи про місцевий час, коли її буде прочитано в UTC.

Щоб порахувати дні між двома датами, див. Підрахунок днів між двома датами.

Перевірка перетворення

  1. Перечитайте рядок UTC, який не залежить від пристрою.
  2. Перевірте одиницю, указану в першому рядку результату.
  3. Перетворіть отриману дату назад: має вийти початкове число.

Конвертувати мітку часу Unix

Автор: Lmaotools