2016-11-10 38 views
0

我想創建一個日期,但我的時間戳在char *中。Qt/C++ - 將字符串時間戳轉換爲uint

所以我想轉換爲int但與atoi()或toInt()我不明白。

qDebug() << atoi("1478790756754"); /* give 2147483647 */ 

QString tmp = "1478790756754"; 
qDebug() << tmp.toInt(); /* give 0 */ 

目標是獲取日期,例如dateTime.setTime_t()。

回答

2

您的時間戳似乎在自1.1.1970格式以來的毫秒。這顯然不適合32位整數,因爲在架構上的類型爲int

的解決方案是簡單:轉換爲類型與更大的值範圍,即long long

QString tmp = "1478790756754"; 
QDateTime date = QDateTime::fromMSecsSinceEpoch(tmp.toLongLong()); 

QString的轉換函數也有一個輸出參數指針bool。您可以傳遞一個bool變量並對其進行測試以檢查轉換是否成功。

相關問題