我知道处理日期和时间是一件棘手的事情,但这个真的让我很困惑。 我有一个UIDatePicker('thePicker'),我用它来设置UITextField中的值以显示原因。稍后,我需要Picker的值,所以为了不继续将日期转换为字符串,反之亦然,我需要将Picker的值存储为日期。我这样做:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setCalendar:[NSCalendar currentCalendar]];
[formatter setDateFormat:@"H:mm"];
[formatter setLocale:[NSLocale currentLocale]];
NSDate * pickertime = self.thePicker.date;
NSString * timeString = [formatter stringFromDate:pickertime];
[(UITextField *)[self.view viewWithTag:selectedTextField] setText:timeString];
NSString *theKey =[NSString stringWithFormat:@"%i", selectedTextField];
[timeTable setObject:pickertime forKey:theKey];
for (id key in timeTable) {
NSLog(@"key: %@, value: %@ \n", key, [timeTable objectForKey:key]);
}
更改thePicker的值时执行上述代码。 我观察到的是,我存储在'timeTable'字典中的值与由thePicker显示的值之间存在 20分钟差异。
所以:thePicker表示小时值为'14',分钟值表示'30',但是timeTable得到
键:1,值:0001-07-08 14:10:28 +0000
但是,TextField中显示的值是正确的。
我错过了什么?