UIDatePicker作为inputView

我有两个问题在UIDatePicker作为inputView。

1:当我在datePicker中select“April 17 9:00 PM”时,
dateTextField输出“2014-04-107 21:00:00”。

2:我国的UTC是+0900。
但是, NSLog输出“2014-04-17 12:00:00 +0000”。

我如何解决这些问题?

 @property IBOutlet UITextField* dateTextField; @property IBOutlet UIDatePicker* datePicker; @property UIToolbar* toolBar; - (void)viewDidLoad { self.datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 600, 320, 216)]; [self.view addSubview:self.datePicker]; self.toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, -40, 320, 40)]; self.toolBar.barStyle = UIBarStyleBlackOpaque; UIBarButtonItem* doneButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dateTextFieldShouldReturn)]; NSArray* finishBarItems = [NSArray arrayWithObjects:doneButton, nil]; [self.toolBar setItems:finishBarItems animated:YES]; self.dateTextField = [[UITextField alloc]initWithFrame:CGRectMake(40, 293, 250, 30)]; self.dateTextField.delegate = self; self.dateTextField.inputView = self.datePicker; self.dateTextField.inputAccessoryView = self.toolBar; [myScrollView addSubview:self.dateTextField]; } - (void)dateTextFieldShouldReturn { NSDateFormatter* formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy-MM-DD HH:mm:ss"]; NSString* dateString = [formatter stringFromDate:self.datePicker.date]; [self.dateTextField setText:dateString]; [self.dateTextField resignFirstResponder]; NSDate* date = [formatter dateFromString:self.dateTextField.text]; NSLog(@"%@", date); } 

像这样对我有用:

 - (void)dateTextFieldShouldReturn { NSDateFormatter* formatter = [[NSDateFormatter alloc]init]; [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"]]; [formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; NSString* dateString = [formatter stringFromDate:self.datePicker.date]; [self.dateTextField setText:dateString]; [self.dateTextField resignFirstResponder]; NSDate* date = [formatter dateFromString:self.dateTextField.text]; NSLog(@"%@", date); }