簡體   English   中英

在C ++中將unix時間戳記作為字符串獲取

[英]Getting a unix timestamp as a string in C++

我使用函數time()來獲取C ++中的時間戳,但是這樣做之后,我需要將其轉換為字符串。 我不能使用ctime,因為我需要時間戳本身(以10個字符的格式)。 麻煩的是,我不知道time_t變量采用什么形式,所以我不知道要從中轉換什么。 cout可以處理它,因此它必須是一些描述性的字符串,但是我不知道是什么。

如果有人可以幫助我,我將不勝感激。

或者,您可以將ctime的輸出提供給MySQL datetime字段並正確解釋它嗎? 出於理解的考慮,我仍然希望回答問題的第一部分,但這可以解決我的問題。

time_t是某種整數。 如果cout以您想要的方式處理它,則可以使用std::stringstream將其轉換為字符串:

std::string timestr(time_t t) {
   std::stringstream strm;
   strm << t;
   return strm.str();
}

我有同樣的問題。 我解決了如下問題:

char arcString [32];
std::string strTmp;

// add start-date/start-time
if (strftime (&(arcString [0]), 20, "%Y-%m-%d_%H-%M-%S", (const tm*) (gmtime ((const time_t*) &(sMeasDocName.sStartTime)))) != 0)
{
    strTmp = (char*) &(arcString [0]);
}
else
{
    strTmp = "1970-01-01_00:00:00";
}

嘗試sprintf(string_variable, "%d", time)std::string(itoa(time))嗎?

http://www.codeguru.com/forum/showthread.php?t=231056

最后, time_t只是一個整數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM