Возможно, вы можете считывать время суток компьютера с точностью до микросекунды или даже наносекунды. Но даже если у вас есть такое точное измерение, это не означает, что значение действительно точное с такой точностью. Фактически, скорее всего, это не так — как упоминалось ранее, дрейф в нечётких кварцевых часах может легко составлять несколько миллисекунд, даже если вы синхронизируетесь с сервером NTP в локальной сети каждую минуту. С использованием NTP-сервера в общедоступной сети Интернет, наилучшая возможная точность, вероятно, составляет десятки миллисекунд и ошибка может легко возрасти до более 100 мс при наличии сетевой загрузки.
Таким образом, бессмысленно рассматривать чтение времени как точку во времени — это скорее похоже на диапазон времени в пределах доверительного интервала: например, система может с уверенностью утверждать, что время сейчас находится между 10,3 и 10,5 секундами после минуты, но она не знает более точно, чем это. Если мы знаем только время +/- 100 мс, то микросекундные цифры в метке времени фактически бессмысленны.
Границу неопределённости можно рассчитать на основе вашего времени. Если у вас есть GPS-приемник или атомные (цезиевые) часы, прямо подключённые к вашему компьютеру, диапазон ожидаемой ошибки сообщается производителем. Если вы получаете время с сервера, неопределённость основана на ожидаемом дрейфе кварца с момента последней синхронизации с сервером, плюс неопределённость NTP-сервера, плюс время двойного обмена с сервером (приближенно и с предположением, что вы доверяете серверу).
К сожалению, большинство систем не учитывают эту неопределённость: например, когда вы вызываете clock_gettime(), возвращаемое значение не сообщает вам ожидаемой ошибки метки времени, и вы не знаете, является ли её доверительный интервал пять миллисекунд или пять лет.
Интересным исключением является TrueTime API от Google в Spanner, который явно сообщает о доверительном интервале на локальных часах. Когда вы запрашиваете текущее время, вы получаете два значения: [earliest, latest], которые представляют собой самую раннюю и самую позднюю возможную метку времени. Исходя из своих расчетов неопределённости, часы знают, что фактическое текущее время находится где-то в этом интервале. Ширина интервала зависит, среди прочего, от того, как давно локальные кварцевые часы были в последний раз синхронизированы с более точным источником времени.