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 回答