我只是想澄清,如果我瞭解日期&時區的工作方式。在Cocoa處理時區
基本上,我有一個日期字符串@「2008-07-06 12:08:49」,我想轉換爲一個NSDate。我希望此日期和時間位於當前用戶的時區設置中。因此,如果它們處於GMT或HST狀態,它仍然是12:08:49。
如果我在UNIX形式1215382129(UTC)和我的時區日期設置爲倫敦(GMT),從的NSLog()輸出的日期是:
2008-07-06 12點08分49秒+0100
如果我再更改時區夏威夷(HST)和輸出在同一天,我得到:
2008-07-06 12點08分49秒-1000
這似乎工作得很好,但我在印象中得到夏威夷時間,我不得不在物理上添加時差(-10h rs)到unix時間戳。那麼這不是必需的嗎?
這是否意味着,無論unix時間指向的日期和時間,它總是指向用戶所在的任何時區的相同日期和時間?
希望這是有道理的!
編輯
我剛剛意識到(感謝凱文·康納!)其實NSDateFormatter是創造依賴於當前時區該日期字符串不同的UNIX時間戳!所以我完全錯了! :-)
啊,有趣!我沒有意識到'NSDateFormatter'使用時區。這似乎是它自動從系統默認設置它。它根據區域創建不同的unix時間戳!感謝你! – 2009-12-30 16:37:57
我還沒有確認這一點,但我認爲你會發現日期解析也是如此:當你解析一個日期字符串時,它會假定該字符串在你的系統時區,除非你以不同的方式配置解析器。乾杯:) – 2009-12-30 17:25:55