DatePicker показывает предыдущую дату - PullRequest
0 голосов
/ 06 марта 2012
-(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);
}

оба textfield.text и дата должны быть одинаковыми, но в журнале вывода .... если я получаю дату = 2-1-2012, я получаю dateselected = 1-1-2012 ... идата сохраняется как 1-1-2012. Я не могу выяснить проблему.

Ответы [ 2 ]

2 голосов
/ 06 марта 2012

Это, вероятно, потому что другой часовой пояс.добавить это, у меня работает:

 [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
0 голосов
/ 06 марта 2012

Приведенный ниже код работает для меня, надеюсь, он вам тоже поможет.

-(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]);
}
...