2012-09-20 20 views
0

我的問題在標題中非常多。我有一個類型爲time_t的參數的函數調用,我需要初始化一個變量到今天的日期,月份和年份,並通過參數發送它。例如,試圖將time_t數據類型轉換爲(dd/mm/yyyy)格式C++

void WebCall(time_t TodaysDate) 

TodaysDate在哪裏與格式DD/MM/YYYY與斜線包括填充的變量。這可能嗎?我無法將數據類型從time_t更改爲SYSTEMTIME或其他。這是用C++編碼的。有任何想法嗎?

+1

谷歌沒有鏈接到一個單一的相關信息? – John3136

+2

你確定t_time嗎?也許time_t? – Tutankhamen

+0

如果't_time'是一些自產的類型,我們將無法幫助,沒有更多的細節。 –

回答

1

如果你的意思time_t,您可以使用gmtimestrftime格式化:

time_t TodaysDate= ...; 
struct tm * ptm= gmtime(&time); 
char buffer[80]; 
strftime(buffer, 80, "%d/%m/%Y", ptm); 
+0

對不起,我的意思是time_t。所以在這段代碼中,我可以將變量ptm傳遞給函數?感謝您的迴應 – user1687451

1

time_t是 「UNIX時間」,是the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC。如MSN解答,您可以使用gmtime,for most common purposes, UTC is synonymous with GMT將其轉換爲日期。你沒有在問題中指定,但如果你需要使用localtime而不是gmtime。這裏有一個函數會爲你做,並返回一個std :: string:

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

std::string time_to_local_date(time_t utc) 
{ 
    struct tm *now = localtime(&utc); 
    char buffer[80]; 
    strftime(buffer, 80, "%d/%m/%Y", now); 
    return std::string(buffer); 
}