Способ portable использует функцию difftime
.Вычислите time_t
для выбранной эпохи, используя mktime
, затем используйте difftime
, чтобы вычислить разницу в секундах.Чтобы преобразовать обратно, вы можете начать с эпохи как struct tm
и добавить количество секунд к tm_sec
, а затем позвонить mktime
, чтобы получить time_t
.
вменяемый Можно предположить, что time_t
представлено в секундах с начала эпохи Unix (1970-01-01 00:00 по Гринвичу) и преобразовать его в большой целочисленный тип (лучше всего long long
), чтобы напечатать его.POSIX требует, чтобы time_t
были секундами с начала эпохи, и в любой здравомыслящей системе это будет.