私は、特定のフェリー旅行の時刻表を表示するアプリを持っています。NSDateはタイムゾーンから独立していますか?
異なるタイムゾーンに移動した場合、たとえば、4時間遅れて10時間のフェリー旅に午前6時が表示されます。
これは、日付がタイムゾーンに基づいてどのように扱われるかとは関係がありますが、その動作を変更する方法を考えることはできません。現時点で
は、ここで私は日付を取得し、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のタイムゾーンを設定することは無意味です。 –