找到1970年1月1日以来的秒数

yon*_*tan 14 c++

我正在寻找一个用C++编写的函数来计算从1970年1月1日到今天过去的秒数.

asc*_*ler 24

#include <time.h>

time_t seconds_past_epoch = time(0);
Run Code Online (Sandbox Code Playgroud)

适用于大多数操作系统.

  • 时代以来的时间,而不是自1970年1月1日以来的时间. (2认同)
  • @tkbx c ++标准仅指定time()返回日历时间(问题标记为c ++).它不能保证它将返回自Unix Epoch 1/1/1970以来的秒数.这是大多数系统返回的. (2认同)

Dav*_*vid 5

time_t time(void)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);
Run Code Online (Sandbox Code Playgroud)

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转换为可读字符串.