2012-01-05 109 views
0

这里是我的代码应该是通过时间戳之后显示两个完整的日期:转换秒,在C++ UNIX时间戳

#include <iostream> 
#include <fstream> 
#include <time.h> 
#include <string> 

using namespace std; 

int main (int argc, char* argv[]) 
{ 

    time_t startTime_t = (time_t) argv[1]; 
    time_t endTime_t = (time_t) argv[2]; 

    cout << argv[1] << endl << argv[2] << endl; 
    cout << startTime_t << endl << endTime_t << endl; 

    string startTime = asctime(localtime(&startTime_t)); 
    string endTime = asctime(localtime(&endTime_t)); 

    cout << startTime << endl << endTime << endl; 

    return 0; 
} 

我做给time_t的一些错误的转换,从秒,你可以看到这个输出:

$ ./a 1325783860 1325791065 
1325783860 
1325791065 
1629762852 
1629763900 
Mon Aug 23 19:54:12 2021 

Mon Aug 23 20:11:40 2021 

参考:

$ date -d @1325783860 
Thu Jan 5 12:17:40 EST 2012 
+0

如果这是作业,它应该被标记为 – antlersoft 2012-01-05 19:37:06

+0

这不是作业。它出现在一个个人项目中。 – gsingh2011 2012-01-05 19:53:38

回答

3

你不能只是投了ST环指针指向time_t。使用atol()从字符串中获取long,然后将其转换为time_t。

您将返回的值是指针算术值解释为一个时间,或基本上是随机的。