2011-07-05 15 views
3
NSLog(@"Time From DB %@", mytime.beginTime);  
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init]; 
[timeFormatter setDateFormat:@"hh:mm a"]; 
UILabel *timeLabel = (UILabel *)[cell viewWithTag:1]; 
timeLabel.text = [timeFormatter stringFromDate:mytime.beginTime]; 
NSLog(@"Time after formatting %@", timeLabel.text); 
[timeFormatter release]; 

を取得コンソールにDateFormat間違った日付に

2011-07-05 11:16:09.331 My project[1907:207] Time From DB 2011-05-10 13:54:09 +0000 
2011-07-05 11:16:09.331 My project[1907:207] Time after formatting 04:54 PM 

なぜ時間が異なっていますか?それを修正するには?

答えて

5

ユーザーのタイムゾーンを使用しています(デフォルト)。あなたがGMTでそれを望むなら、あなたは日付フォーマッタのタイムゾーンを設定しなければなりません。

[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 

BTW時間は異なりません。時間は同じですが、異なる時間帯で表されています。日付でからこれを気づくことができるよう

+0

ありがとうございます...それは動作します... – Jim

2

2011-05-10午前13時54分09秒0000は、GMTタイムゾーン内の値を有します。したがって、変換中に、日付フォーマッタは携帯電話のタイムゾーンを使用します。つまり、あなたの地域のタイムゾーンは-03:00です。したがって、GMTタイムゾーンの日付をGMTタイムゾーンの日付に変換するには、GMTが@ Deepakの答えで指定されているように電話機のデフォルトタイムゾーンでない場合、日付フォーマッタのタイムゾーンをGMTに明示的に設定する必要があります。

関連する問題