在使用C++的Linux環境中,我需要將time_t值轉換爲不同時區的英文字符串表示形式。例如1305750080 - >「2011-05-18 13:21:20 PST」。我可以使用gmtime()或localtime()與strftime()結合來爲GMT和我的本地時區生成字符串。我將如何選擇一個替代時區?C++ time_t到特定時區的std :: string
回答
我認爲你可以用tzset來做到這一點。
setenv("TZ", "EST5EDT", 1);
tzset();
gmtime()
reference link here舉例說明了一種應用時區偏移的非常簡單的方法。當然,你可以創建一個枚舉或什麼的類,並提出一些更好的東西。
或者boost::date_time
有一個相當廣泛的實現,可以在linux和windows上運行。
我發現這個引用,但是如果日期換行,那麼不會引起問題嗎? – 2011-05-18 20:36:01
我會建議提高太.. – Nim 2011-05-18 20:38:55
@JoshG:是的,這個簡單的例子只處理時間,而不是日期,並且不處理與UTC有小數偏移的時區(如印度)。我可能也會使用提升。 – 2011-05-18 21:07:12
您可以使用putenv
將環境變量TZ
更改爲您想要的任何時區,然後使用localtime
或最好是localtime_r
。如果需要,您可以使用getenv
緩存舊副本。
- 1. std :: string name和std :: string&name之間的C++區別
- 2. C++ std :: string和string
- 3. 從std :: basic_istream複製特定數量的字符到std :: string
- 4. C++ std :: string到Ruby VALUE
- 5. C++ std :: string到布爾值
- 6. 用特殊字符搜索C++ std :: string
- 7. C++循環std :: vector <std :: map <std :: string,std :: string>>
- 8. 轉換時間到特定的時區
- 9. QString時,的std :: string
- 10. 將std :: string轉換爲MSVC特定__int64
- 11. 輸出的char *到的std :: string C++
- 12. C++的std :: string到char與OpenGL的LoadBMP
- 13. Cython C++和std :: string
- 14. C++ - MPIR:mpz_t to std :: string?
- 15. 的std :: string到LPOLESTR
- 16. time_t是否由time()區域特定的返回?
- 17. 轉換雙*到std :: string的在C++
- 18. C++比較爲const char *到的std :: string
- 19. c + +將postgres時間戳無時區轉換爲time_t
- 20. 閱讀std :: string,從std :: string中刪除所有特殊字符
- 21. 使用std :: sscanf和std :: string的C++
- 22. 迭代器到std :: string中的特定字符
- 23. 用C++中的另一個std :: string替換給定std :: string的實例
- 24. std :: string :: c_str和std :: string :: data有什麼區別?
- 25. 轉換QString時,的std :: string *
- 26. 的std :: string :: c_str()和臨時
- 27. C++:的std :: string問題
- 28. C++的std :: string構造
- 29. 在C#中的std :: string?
- 30. 「std :: string const」與「const std :: string」
我已經重申了這一點,因爲接受的答案是調用不在C++標準庫中的函數;而是在POSIX標準中。 – 2011-05-18 21:53:05