Ниже приведена функция util для получения текущей метки времени в миллисекундах:
#include <sys/time.h>
long long current_timestamp() {
struct timeval te;
gettimeofday(&te, NULL); // get current time
long long milliseconds = te.tv_sec*1000LL + te.tv_usec/1000; // calculate milliseconds
// printf("milliseconds: %lld\n", milliseconds);
return milliseconds;
}
О часовом поясе :
gettimeofday () поддержка для указания часового пояса,
Я использую NULL , который игнорирует часовой пояс, но при необходимости вы можете указать часовой пояс.
@ Обновление - часовой пояс
Поскольку представление времени long
не относится к самому часовому поясу или не влияет на него, поэтому установка tz
параметра gettimeofday () не требуется, поскольку это не имеет никакого значения.
И, согласно man странице gettimeofday()
, использование структуры timezone
устарело, поэтому аргумент tz
обычно следует указывать как NULL, для подробностей, пожалуйста, проверьте man стр.