На работе мы управляем несколькими часами одновременно, не только часовыми поясами, но и некоторыми более эзотерическими часами, используемыми для навигации космического корабля.
Единственное, что действительно имеет значение, это то, что вы соответствуете ОДНОМУ И ТОЛЬКО ОДНОМУ ЧАСУ , в зависимости от того, что вы выберете, и что у вас есть ПОДТВЕРЖДАЮТКОНВЕРСИИ ЧАСОВ для случаев, когда вам необходим ПРОСМОТР ВРЕМЕНИ В ЧАСТИ , ОТЛИЧНОЙ ОТ ВАШЕГО И ТОЛЬКО ОДНОГО ЧАСОВ .
Итак:
Один и только один час : выберите самый простой, который решит вашу проблему, скорее всего, это будет UTC (чтонекоторые люди неправильно называют Гринвич, но точка остается: нулевая линия.
Соответствующие преобразования часов : Это зависит от вашего приложения, но вам нужно спросить и ответить на следующее2 вопроса: какое разрешение мне нужно?Нужно ли мне следить за високосными секундами?После того, как вы ответите, вы сможете выбрать стандартные или более сложные библиотеки.Опять же, вы должны задать эти вопросы.
Просмотр времени : когда кто-то выбирает представление о времени (скажем, по тихоокеанскому времени), просто вызовите соответствующее преобразование часов вСпрос.
Действительно, вот и все.
Что касается библиотек, я использую Python для сценариев, но NAIF Spice Library для разработки миссий и внутренний код для навигации космических аппаратов.Разница между ними заключается просто в разрешении и надежности, учитывая все, что вам нужно учитывать (вращение Земли, относительное замедление, замедление, секунды и т. Д.). Конечно, вы выберете библиотеку, которая соответствует вашим потребностям.
Удачи.
Редактировать:
Я забыл упомянуть: не пытайтесь реализовать свою собственную библиотеку управления временем - используйте готовую библиотеку.Если вы попытаетесь, вы можете быть успешным, но ваш реальный проект умрет, и у вас будет только одна средняя библиотека времени для показа.Может быть, я преувеличиваю, но создание надежной библиотеки даты и времени общего назначения далеко не тривиально, то есть это сам по себе проект.