Токио

Метки Unix: секунды, миллисекунды и местное отображение

Перед работой с журналом, экспортом или интеграцией выясните, что означает число.

WhatTimeIsIt Опубликовано Обновлено
Фото

Число обозначает момент

Обычная метка Unix считает секунды относительно 1970-01-01, 00:00:00 UTC по принятому в системе соглашению Unix-времени. Она не содержит местного часа или названия города. Одна метка отображается по-разному в Токио и Лондоне, оставаясь тем же моментом. Конвертер меток помогает проверить значение, но сначала определите единицу исходной системы.

Секунды легко спутать с миллисекундами

Многие интерфейсы используют секунды, а значения JavaScript Date — миллисекунды. Ошибка единиц способна дать дату около начала эпохи или далеко за пределами ожидаемого периода. Не полагайтесь только на число цифр: изучите документацию поля и проверьте известный пример. Сохраняйте дробную точность, если она важна для порядка событий.

Местное расписание храните отдельно

Метка определяет завершённое событие или единичный срок, но не полностью описывает «09:00 каждого понедельника в Париже». Для этого нужны местное расписание и правила пояса. Дата рождения или праздник на весь день тоже являются календарными датами, а не обязательно полуночью UTC. Неверная модель может сдвинуть отображаемый день при преобразовании для другого региона.

Как искать ошибку

Сохраните исходное значение, единицу, ожидаемый момент UTC и место отображения. Сначала сравните UTC, затем местный результат. Если неверен UTC, проверяйте разбор и единицы; если UTC совпадает, проверяйте пояс и версию данных. Не уничтожайте исходные журналы при исправлении отображения. Материал об обновлениях объясняет правила, а руководство по UTC — понятную запись результата.

Источники

  1. The Open Group: секунды от начала эпохи
  2. ECMA-262: значения и диапазон времени
Вернуться в раздел · Руководства