1. 程式人生 > >如何獲取Unix時間戳[C++]

如何獲取Unix時間戳[C++]

什麼是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 編譯通過;需開啟 "-std=c++11" 編譯開關
#include <ctime> #include <iostream> int main() { std::time_t result = std::time(nullptr); 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

之所以開啟”-std=c++11”編譯開關的原因是因為nullptr是C++11語言標準用來表示空指標的常量值。

不使用C++11標準的話,你還可以這樣寫:

//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;
}