На самом деле вопрос не имеет большого смысла. См. time (7) для обзора функций, связанных со временем.
Любое устройство с часами возвращает время, измеренное из какого-либо события источника в прошлом. Соглашение Unix (и Posix) состоит в том, чтобы измерять его с Epoch (начало 1970 года, как объясняет ответ aix ).
Отображение некоторого времени в UTC, или по местному времени, или с использованием французского революционного календаря, или с использованием календаря майя, или любого другого календаря из любой интересующей вас культуры, не меняет это время. Изменяется только отображение (или показанная форма) этого времени.
Это немного похоже на то, что два , deux , 1 + 1 , или 2 , или 10b -с b означает двоичное значение - все представления того же числа.
Возвращаясь к вопросу, справочная страница в clock_gettime дает точный ответ на вопрос. Это зависит от clk_id
, который вы запрашиваете, а для CLOCK_REALTIME
время измеряется с начала эпохи Unix. Для других часов (например, CLOCK_MONOTONIC
) используемый источник не указан.
(Меня очень печально удивляет количество вопросов, на которые можно очень быстро ответить, взглянув на man . Я не понимаю логику того, что люди тратят больше времени, чтобы задать вопрос вот что посмотреть - просто набрав man clock_gettime
на своем Linux-боксе - на страницах руководства).
Понятие часового пояса относится только к struct tm
, как возвращено функциями localtime & gmtime
(и связанными с ними). Время (например, некоторое time_t
), измеренное с эпохи (например, результат time (2) , gettimeofday , clock_gettime
с CLOCK_REALTIME
) не имеет часового пояса.
Эпоха Unix - 01 января 1970 года 0:00 UTC (по определению (time_t)0
). В моем часовом поясе (МЕТ = Париж / Франция) та же самая Эпоха - Чт 1 января 01:00:00 МЕТ 1970.