我的代碼從外部源接收一個time_t。然而,那time_t不是基於UTC Epoch時間的acutally,以及它我得到一個時區字符串(例如,EDT,PST等),並且它基於這個offset_ed時代。我需要將其轉換爲真正的基於UTC時代的time_t。將Unix time_t轉換爲/從任意時區轉換的最佳方法?
此外,我需要能夠走相反的方向,採用基於UTC時代的time_t和時區,並創建偏移的time_t,但是在這種情況下而不是類似EDT/PST的時區)等等,我有一個像「America/New York」這樣的Unix風格的時區描述,並且需要根據夏時制轉換爲正確的時區,所以我需要從算法中取回一個偏移的time_t和正確的描述符(EDT ,美東時間)。
我敢肯定,我可以通過臨時更改tzset()和某些組合的轉換時間間隔,time_t和timeval之間的轉換,但這樣做總是會讓我的大腦受傷,我錯過了很明顯的事任何人都可以推薦一些代碼或sudo代碼來做到這一點或至少有一個正確的方法?
沒有任何明顯的或適當的(或清楚,或高興)時間操縱任何語言。 tzset()和localtime()/ strftime()是你最好的,imo。 – 2010-07-25 14:21:40