Reputation: 57
-(IBAction)pickerChanged:(id)sender
{
UIDatePicker *picker = (UIDatePicker *)sender;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
//NSDate *dateSelected is declared in .h file
self.dateSelected = [picker date];
if(self.textField.tag == 101)
self.textField.text = [dateFormatter stringFromDate:self.dateSelected];
nslog(@"date = %@",self.textField.text);
nslog(@"dateSelected = %@",self.dateSelected);
}
both textfield.text and date selected should be same but, in the output log....if i get date = 2-1-2012 i am getting dateselected = 1-1-2012...and the date is getting saved as 1-1-2012.i am not able to figure out the problem.
Upvotes: 0
Views: 884
Reputation: 554
The below code worked for me, Hope it helps you too.
-(IBAction)pickerChanged:(id)sender
{
UIDatePicker *picker = (UIDatePicker *)sender;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
//NSDate *dateSelected is declared in .h file
if(self.textField.tag == 101){
self.textField.text = [dateFormatter stringFromDate:[picker date]];
}
NSLog(@"date = %@",self.textField.text);
NSLog(@"dateSelected = %@",[picker date]);
}
Upvotes: 0
Reputation: 12333
That's probably because different timezone. add this, it works for me:
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
Upvotes: 2