日付とタイムゾーンの仕組みを理解しているかどうかを明確にしたいだけです。
基本的に、NSDate に変換したい日付文字列 @"2008-07-06 12:08:49" があります。この日付と時刻は、現在のユーザーのタイム ゾーンが設定されているものに合わせたいと考えています。したがって、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
これは問題なく動作するようですが、ハワイ語で時刻を取得するには、時差 (-10 時間) を UNIX タイム スタンプに物理的に追加する必要があるという印象を受けました。これは必須ではありませんか?
UNIX時間が指している日付と時刻が何であれ、ユーザーがいるタイムゾーンに関係なく常に同じ日付と時刻を指しているということですか?
これが理にかなっていることを願っています!
編集
実際、NSDateFormatter は現在のタイムゾーンに応じて、その日付文字列に対して異なる UNIX タイムスタンプを作成していることに気付きました (Kevin Conner のおかげです!)。だから私は完全に間違っていました!! :-)