[C/C++时间系列]时间戳与标准时间

一、时间戳

       时间戳是自 1970 年 1 月 1 日(08:00:00 GMT)至当前时间的总秒数。它也被称为 Unix 时间戳(Unix Timestamp)。
定义为:从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

       Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式。

       既然知道了什么时间戳,大家肯定猜到了时间戳是怎么来的,对的,就是调用了time()获取到的。

       解析时间戳,若要解成标准的时间戳,则可以借助gmtime_s(),(gmtime()不安全) 。若要解成当地的时间戳,则可以借助localtime_s(),(localtime()不安全)

1. Windows平台(win32)

time() : 获取到当前时间,其函数原型在time.h中。


/* Return the current time and put it in *TIMER if TIMER is not NULL.  */

extern time_t time (time_t *__timer) __THROW;
从备注了解到 有2中方式可以获取到时间,一种是函数返回值 ,另一种是*__timer指针。

demo代码实现如下:


#include

#include

using namespace std;

 

int main()

{

    time_t myt=time(NULL);

    cout<<"sizeof(time_t) is: "<

    cout<<"myt is :"<

 

    time_t t;

    time(&t);

    cout<<"t is:"<

}
执行结果:

2. Linux平台

demo代码实现如下:
    #include    

    #include      //添加头文件

    int64_t getCurrentTime()      //直接调用这个函数就行了,返回值最好是int64_t,long long应该也可以

    {    

       struct timeval tv;    

       gettimeofday(&tv,NULL);    //该函数在sys/time.h头文件中

       return tv.tv_sec * 1000 + tv.tv_usec / 1000;    

    }    

 

    int main()    

    {    

        std::cout<<"nowTime: "<

        return 0;    

    }  
编译并执行:

$gcc -lstdc++ l_time_t.cpp

 

 

你可能感兴趣的:(C/C++)