0

アプリのバックエンドに日付オブジェクトを保存したいと考えています。これはコードです:

NSDate *date = self.birthPickerView.date;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSString *stringFromDate = [formatter stringFromDate:date];
NSLog(@"%@", stringFromDate);

NSDate *endDate = [formatter dateFromString:stringFromDate];
[formatter release];

NSLog(@"%@", endDate);

// Save to database
[user setObject:endDate forKey:@"birth"];

これは印刷結果です。

1985-03-05 00:00:00
1985-03-04 23:00:00 +0000

終了日が正しくありません。1985-03-05データベースに保存したい。何が悪いのか教えていただけますか?

編集

[self.birthPickerView setTimeZone:[NSTimeZone localTimeZone]];

        NSLog(@"%@", self.birthPickerView.date);
        NSLog(@"%@", self.birthPickerView.timeZone);

        [user setObject:self.birthPickerView.date forKey:self.navTitle];

このコードはデータベースに保存1984-03-04 23:00:00されます。それの何が問題なのですか?

4

1 に答える 1

2

日付を文字列に変換してから、再び日付に戻す必要がある理由がわかりません。

ただし、NSDateFormatter でタイムゾーンを設定していないため、これが発生すると確信しています。デフォルトのタイム ゾーンは GMT であり、そこに表示されるタイム オフセットが発生する可能性があります。

于 2012-11-14T11:18:55.293 に答える