Какой диапазон значений даты и времени вас интересует? А какое разрешение по времени?
Как указано в комментарии fge , если вы хотите разрешение в 1 секунду в течение периода, ограниченного 1902-2037, то вы можете использовать 32-разрядное целое число со знаком и количество секунд, прошедших с начала эпохи Unix. , 1970-01-01 00:00:00 +00: 00 (полночь 1 января 1970 года в UTC). Если вам нужен более широкий диапазон, то вам, вероятно, следует использовать 64-разрядное целое число со знаком относительно эпохи Unix. Если вам нужна точность менее секунды, сохраните 32-разрядное целое число со знаком, которое равно числу наносекунд. Обратите внимание, что для отрицательного времени (до 1970 года) дробные секунды также должны быть отрицательными.
Одной из причин для предположения этих представлений является то, что значение можно легко найти через стандартные интерфейсы Unix (POSIX), такие как time()
для разрешения в 1 секунду и clock_gettime()
для разрешения в наносекундах или gettimeofday()
для разрешения в микросекундах.