我有一個應用程序,顯示某些渡輪旅行的時間表。NSDate獨立於時區?
如果我前往不同的時區 - 比如說4個小時,上午10點的渡輪旅程現在顯示爲6am?
我知道這與日期如何根據他們的時區進行處理有關,但我無法弄清楚如何改變這種行爲。
目前這裏是我如何獲得日期和一個UILabel顯示它:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm"];
[self.departureTime setText:[dateFormatter stringFromDate:[self.route objectForKey:@"departureTime"]]];
[self.arrivalTime setText:[dateFormatter stringFromDate:[self.route objectForKey:@"arrivalTime"]]];
[dateFormatter release];
在此先感謝您的幫助。
明白的NSDate本身是獨立的時區的 - 它代表UTC(格林威治)時間。您必須設置NSDateFormatter的時區才能生成所需時區的結果。 –
@DanielRHicks日期有* no *時區。它不代表UTC,因爲UTC是時區,日期沒有時區。 –
按照慣例,NSDate中的時間偏移量是相對於UTC的時間偏移量。如果NSDate對象沒有相對於UTC設置,那麼設置NSDateFormatter的時區將是無用的。 –