5

CoreData ストアに日付と時刻を保持しており、最初に入力した時刻を正確にユーザーに提示する必要があります。問題は、彼らが東海岸で 4:00 を入力し、後で西海岸で記録された時刻を見ると、1:00 と表示されることです。これは、iPhone が世界時を現地時間に変換するためです。4:00 を表示する必要があります -- おそらく 4:00 (+3h00)。

Core Data モデルを再構築する前に、作成時にアクティブだった NSTimeZone を格納された NSDate オブジェクトから派生させる方法がないことを確認したいと思います。ある?そうでない場合、自分で作成時に NSTimeZone をキャプチャする最善の方法はありますか? GMT からの作成時の NSTimeZone 時差を表す NSNumber?

ありがとう。

4

1 に答える 1

8

ご存知のとおり、NSDateは普遍的な時点を表しており、特定のタイムゾーン情報は含まれていません。

オフセットを保存する代わりに、NSTimeZoneのnameプロパティを保存することをお勧めします。次に、を使用+[NSTimeZone timeZoneWithName:]してタイムゾーンを取得し、それを現地時間に変換できます。これにより、ユーザーに情報を表示する方法に最大限の柔軟性がもたらされます。

于 2011-01-18T08:21:47.970 に答える