2012-03-06 10 views
0
-(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とdateの両方が同じである必要がありますが、出力ログに....が表示されます。日付が取得された場合= 2-1-2012 dateselected = 1-1-2012 ...と日付が1-1-2012として保存されています.i問題を把握できません。DatePickerが前の日付を表示

答えて

2

おそらく異なるタイムゾーンが原因です。これを加えて、それは私のために働く:

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

以下のコードは私のために働いた、それもあなたを助けてくれることを願っています。

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

それは私のために働いていません。 –

関連する問題