我正在寻找一个C ++函数来计算从1970年1月1日到今天已过去的秒数。
答案 0 :(得分:24)
#include <time.h>
time_t seconds_past_epoch = time(0);
适用于大多数操作系统。
答案 1 :(得分:5)
time_t时间(无效) time_t time(time_t * ptr)
包括:time.h
返回自格林尼治标准时间1970年1月1日午夜(或美国东部时间1969年12月31日下午)以来经过的秒数。如果参数不为NULL,则将相同的值存储在指向的位置。有关time_t类型的信息,请点击此链接。返回的值可以用作经过时间的可靠度量,可以传递给ctime()或转换为人类可读的字符串。
示例:
time_t t1=time(NULL);
do_something_long();
time_t t2=time(NULL);
printf("%d seconds elapsed\n", t2-t1);
time_t值是按时间从时钟产生的。 time_t值由y,m,d,h,m,s部分由mktime和timegm产生。 time_t值通过localtime和gmtime分析为y,m,d,h,m,s。 time_t值由ctime转换为可读字符串。
答案 2 :(得分:2)
请参阅man mktime
:
#include <time.h>
time_t secsSinceEpoch = mktime(localtime(NULL));