我得到了一個時間戳字符串,因爲這個3.44063E+08
。我怎樣才能將其轉換爲正常時間,如12時10分22秒,等時間戳問題
Q
時間戳問題
1
A
回答
4
的數值是time_t
,你需要把它其中localtime()
或gmtime()
,分別轉換爲本地或Greenwhich時間之後,你可以使用strftime()
以您選擇的格式打印。
這裏是一個快速和完整的例子:
[email protected]:/tmp$ cat timeformat.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
time_t tt = 3.44063E+08;
struct tm tm;
char buf[32];
tm = *localtime(&tt);
strftime(buf, 31, "%Y-%m-%d %H:%M:%S", &tm);
printf("%s\n", buf);
return 0;
}
[email protected]:/tmp$ gcc -o timeformat timeformat.c
[email protected]:/tmp$ ./timeformat
1980-11-25 23:03:20
[email protected]:/tmp$
編輯:而當你標記你的問題C++,看看Boost Date_Time其中有很多提供給。但正如我的示例所示,對於簡單的「數字到文本」轉換,您並不需要它。
1
指數格式的時間戳表示有人使用浮點時間計數器,並且在編寫代碼打印時沒有注意。如果您只有一段文字,則無法將其轉換爲準確的時間,因爲它只能精確到1000秒(大約20分鐘)。如果您真的將原件作爲雙份,您可以從中獲得準確的時間。如果你把它當作浮動,上帝會幫助你。
該數字(可能)是一個time_t,它是Unix時代(1970年1月1日)以來的秒數。您可以使用gmtime()或localtime()將其轉換爲分解時間結構(年,月等),然後使用strftime()將其轉換爲任何文本格式。如果你只有文本而不是實際的數字,你必須首先使用strtod()將其解析爲數字。
1
更多的上下文會很有用,但假設你已經擁有了它,3.44063E + 08是344063000,它作爲time_t轉換爲1980-11-26 05:03:20(utc)。如果這對您有意義的時間戳,那麼它是time_t:自1970-01-01以來的秒數。
另一種可能性是它來自Excel或其他Microsoft Office產品,其存儲日期爲自1900年以來的日期,或在某些情況下存儲日期爲1899年。這將轉換爲943,893年的某個日期。如果這是有道理的,就像你正在做天文或慢放射性同位素計算等一樣,那麼它在一天的早些時候,大概是03:42。
相關問題
- 1. 時間戳問題
- 2. 時間戳問題
- 3. 時間戳,計時器,時間問題
- 4. MySQL的時間戳問題
- 5. Android - 時間戳問題
- 6. C#時間戳問題
- 7. Laravel 4.1時間戳()問題
- 8. php時間戳問題
- 9. Cassandra時間戳問題
- 10. PHP - 時間戳問題[LDAP]
- 11. 時間戳有問題
- 12. 時間戳更新問題
- 13. asp.net時間戳問題
- 14. JavaScript時間戳問題
- 15. 時間戳轉換問題
- 16. MYSQL時間戳問題
- 17. 時間戳問題:Python無法識別時間戳
- 18. PHP時間戳小時問題
- 19. STR_TO_DATE問題與24小時時間戳
- 20. SQL插入時間戳問題
- 21. scapy:UDP碎片整理時間戳問題
- 22. 海軍報圖時間戳問題
- 23. 問題與查詢中的時間戳
- 24. 工廠女孩時間戳問題
- 25. MySQL的時間戳比較問題
- 26. Teradata BTEQ - 無效的時間戳問題
- 27. 關於時間戳格式的問題
- 28. Python日期時間戳記問題
- 29. Hive時間戳比較問題
- 30. Highcharts動態x軸時間戳問題
你從哪裏得到它的? – casablanca 2011-04-13 03:10:25
你從哪裏得到時間戳? _你有時間戳嗎?換句話說,請說明你已經擁有了什麼。 – 2011-04-13 03:11:03
我從winxp系統應用程序日誌文件中得到 – 2011-04-13 03:11:10