什么是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