这看起来很奇怪......我在actionSheet中使用了UidatePicker。点击按钮我显示动作表。当我选择日期为2012年12月31日并点击完成时,我得到的日期是2013年12月31日。它发生在所有年份且仅在12月31日。我做错了吗?这是我的代码
-(void)dateButtonPressed:(id)sender //Method invoking the action sheet on button press
{
actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
CGRect pickerFrame = CGRectMake(0, 40, 0, 0);
closingdatePicker = [[UIDatePicker alloc] initWithFrame:pickerFrame];
closingdatePicker.tag=10;
closingdatePicker.datePickerMode=UIDatePickerModeDate;
pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerToolbar.barStyle = UIBarStyleBlackTranslucent;
[pickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(DatePickerCancelClick:)];
[barItems addObject:cancelBtn];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick:)];
[barItems addObject:doneBtn];
[pickerToolbar setItems:barItems animated:YES];
[actionSheet addSubview:pickerToolbar];
[actionSheet addSubview:closingdatePicker];
[actionSheet showInView:self.view];
[closingdatePicker release];
[actionSheet setBounds:CGRectMake(0,0,320, 464)];
[actionSheet release];
}
- (void)DatePickerDoneClick:(id)sender{ //doen click and my date is stored in selectedDate
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/YYYY"];
//Gets our picker
UIDatePicker *ourDatePicker = (UIDatePicker *) [actionSheet viewWithTag:10];
NSDate *selectedDate = [ourDatePicker date];
closingDate.text=[NSString stringWithFormat:@"%@",[formatter stringFromDate:selectedDate]];
[actionSheet dismissWithClickedButtonIndex:0 animated:YES];
}
答案 0 :(得分:4)
只使用 yyyy 而不是 YYYY 这种情况会在dateformater中发生一段时间