Метки Unix: секунды, миллисекунды и местное отображение
Перед работой с журналом, экспортом или интеграцией выясните, что означает число.
Число обозначает момент
Обычная метка Unix считает секунды относительно 1970-01-01, 00:00:00 UTC по принятому в системе соглашению Unix-времени. Она не содержит местного часа или названия города. Одна метка отображается по-разному в Токио и Лондоне, оставаясь тем же моментом. Конвертер меток помогает проверить значение, но сначала определите единицу исходной системы.
Секунды легко спутать с миллисекундами
Многие интерфейсы используют секунды, а значения JavaScript Date — миллисекунды. Ошибка единиц способна дать дату около начала эпохи или далеко за пределами ожидаемого периода. Не полагайтесь только на число цифр: изучите документацию поля и проверьте известный пример. Сохраняйте дробную точность, если она важна для порядка событий.
Местное расписание храните отдельно
Метка определяет завершённое событие или единичный срок, но не полностью описывает «09:00 каждого понедельника в Париже». Для этого нужны местное расписание и правила пояса. Дата рождения или праздник на весь день тоже являются календарными датами, а не обязательно полуночью UTC. Неверная модель может сдвинуть отображаемый день при преобразовании для другого региона.
Как искать ошибку
Сохраните исходное значение, единицу, ожидаемый момент UTC и место отображения. Сначала сравните UTC, затем местный результат. Если неверен UTC, проверяйте разбор и единицы; если UTC совпадает, проверяйте пояс и версию данных. Не уничтожайте исходные журналы при исправлении отображения. Материал об обновлениях объясняет правила, а руководство по UTC — понятную запись результата.