-1

重複の可能性:
NSDate が正しい日付を返さない

次のように現在の時刻を表示しようとすると: NSDate *mydate = [NSDate date];

私はこの結果を得ます:

2012-11-24 09:27:13.194 myApp[5284:c07] mydate = 2012-11-24 07:27:13 +0000

シミュレーターの時間と OS X の時間は異なりますが、時間は 2 時間ずれています。どうすれば修正できますか?前もって感謝します..

4

1 に答える 1

2

NSDateFormatter で日付を出力する必要があります。NSDate にはタイムゾーン情報が添付されていません。タイムゾーンを日付フォーマッタに必ず添付してください。

NSDate* now = [NSDate date];

// GET A DATE FORMATTER AND SET THE TIMEZONE
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.timeZone = [NSTimeZone systemTimeZone];

// CHANGE FORMAT TO SUIT YOUR NEEDS
[df setDateStyle: NSDateFormatterFullStyle]; 
[df setTimeStyle: NSDateFormatterFullStyle];

// GET YOUR FORMATTED DATE STRING
NSString *dateString = [df stringFromDate: now];
于 2012-11-24T07:43:51.163 に答える