c++ c 时间戳获取 秒级 微秒级 纳秒级别



#include <iostream>  
#include <sys/time.h>
#include <cstdlib>  
#include <cstdio>
#include <ctime>
#include <cmath>
#include <unistd.h>

using namespace std;
time_t clocktime()
{

time_t t= time(NULL);
std::cout<<" s秒级 ----:";
std::cout<<t<<endl;

struct timeval tv;  
gettimeofday(&tv,NULL); 
std::cout<<"10e6 微秒级s ----:";
std::cout<<tv.tv_sec<<"s,"<<tv.tv_usec<<"微秒"<<endl;


struct timespec tn;

cout<<"----";
clock_gettime(CLOCK_REALTIME, &tn);

std::cout<<"10e9 纳秒级s ----:";
std::cout<<tn.tv_sec<<"s,"<<tn.tv_nsec<<"纳秒"<<endl;


struct timespec current_time,last_time;
double aa=1.1234567891;
printf("double %.12f\n",aa);
cout<<"----";
clock_gettime(CLOCK_REALTIME, &last_time);
sleep(1);
std::cout<<last_time.tv_sec<<","<<last_time.tv_nsec<<endl;
clock_gettime(CLOCK_REALTIME, ¤t_time);
std::cout<<current_time.tv_sec<<","<<current_time.tv_nsec<<","<<pow(10,-9)<<endl;
  double delta_time = (current_time.tv_sec - last_time.tv_sec)+ (current_time.tv_nsec - last_time.tv_nsec)*pow(10,-9);
printf("double %.12f\n",delta_time);

}
int main( ){     
	clocktime();
	return 0;
}


a@a:~/github/cpp/src$ g++ time.cpp
a@a:~/github/cpp/src$ ./a.out
 s秒级 ----:1500448195
10e6 微秒级s ----:1500448195s,315233微秒
----10e9 纳秒级s ----:1500448195s,315235598纳秒
double 1.123456789100
----1500448195,315242687
1500448196,315388886,1e-09
double 1.000146199000



猜你喜欢

转载自blog.csdn.net/CAIYUNFREEDOM/article/details/75388111