C++ 获取Unix时间戳

时间:2022-10-06 02:37:15

什么是Unix时间戳?

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

2038年1月19日会发生什么?

在2038年1月19日,由于32位整形溢出,Unix时间戳会停止工作。在这个大灾难前,数百万计的应用程序采取新的约定时间的方式,要么升级到64位版本。

代码示例

示例一

//Code::Blocks编译通过
#include<iostream>
#include<ctime>

int main()
{
    std::time_t t = std::time(0);  // t is an integer type
    std::cout << t << " seconds since 01-Jan-1970\n";
    return 0;
}

运行结果:

1554986565 seconds since 01-Jan-1970

示例二

//Code::Blocks 编译通过;
#include <ctime>
#include <iostream>

int main()
{
    std::time_t result = std::time(NULL);
    std::cout << std::asctime(std::localtime(&result))
              << result << " seconds since the Epoch\n";
}

运行结果:

Sun Nov 22 11:48:58 2015 
1448164138 seconds since the Epoch

更多参考