chandu nhyt
chandu nhyt

Reputation: 57

DatePicker showing previous date

-(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

Answers (2)

Sirji
Sirji

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

HelmiB
HelmiB

Reputation: 12333

That's probably because different timezone. add this, it works for me:

 [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

Upvotes: 2

Related Questions