GMT形式のNSDateオブジェクトを現在のロケール/デバイス設定の日付形式に変換するにはどうすればよいですか?
たとえば、デバイスが米国にあり、PDTタイムゾーンにある場合、GMT時間を同等のPDT時間に変換したいと思います。
GMT形式のNSDateオブジェクトを現在のロケール/デバイス設定の日付形式に変換するにはどうすればよいですか?
たとえば、デバイスが米国にあり、PDTタイムゾーンにある場合、GMT時間を同等のPDT時間に変換したいと思います。
厳密には、タイム ゾーンの概念がまったくないため、NSDate
を別のタイム ゾーンに変換することはできません。NSDate
オブジェクトは、タイム ゾーンに関係なく、(絶対) 時間内のNSDate
1 つのポイントを表すだけです。
ユーザーに日付を表示したいときはいつでも、NSDateFormatter
. デフォルトでは、ユーザーのタイムゾーンで時刻が自動的に表示されます。これは でオーバーライドできます-[NSDateFormatter setTimeZone:]
。
適切なタイムゾーンで渡すNSDate
メソッドを使用するだけです。descriptionWithCalendarFormat:timeZone:locale:
このメソッドを使用するdescription
と、現在のタイムゾーンで日付/時刻が取得されます (したがって、デバイスが PDT に設定されている場合、時刻は PDT になります)。