我有一個多線程應用程序需要向用戶顯示某些日期。日期使用UTC Unix時間值進行存儲。但是,日期必須顯示在用戶的時區中,而不是本地服務器時間或UTC。基本上,我需要這樣的功能:C/C++中線程安全的時區特定時間顯示
struct tm *usertime_r(const time_t *timer, struct tm *result, const int timezone) {
<just like localtime_r, except it uses UTC+timezone as the timezone>
}
此功能必須是線程安全的,所以我不認爲設置TZ
環境變量將是一種選擇。
這是一個非常非常基本的答案,因爲系統庫不能準確跟蹤許多更改,所以對於許多時區實際上並不可行。只是抵消是不夠的,因爲它隨時間而變化。 – 2013-12-31 17:03:18