我正在使用核心数据将实体添加到数据库中。有一个计算年龄的字段。您可以使用选择器填写您的生日,并根据日期选择器中选择的内容设置文本字段的文本。还有另一个视图,您可以编辑的实体的详细视图。不幸的是,当选择器加载时,它会加载今天的日期,而不是已经设置的文本字段中的日期。有什么办法可以使用文本字段设置选择器的日期吗?该文本采用以下格式:1997年8月11日。如果我解释不好,请抱歉。基本上我想根据文本字段中的文本设置日期选择器的日期。
只是让你知道发生了什么:
- (void) dateChanged:(id)sender{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateStyle = NSDateFormatterLongStyle;
birthdayTextField.text = [NSString stringWithFormat:@"%@",
[dateFormatter stringFromDate:birthdayDatePicker.date]];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *startdate= [NSString stringWithFormat:@"%@",
[dateFormatter stringFromDate: birthdayDatePicker.date]];
NSDate *End=[dateFormatter dateFromString:[dateFormatter stringFromDate:[NSDate date]]];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorianCalendar components:NSYearCalendarUnit
fromDate:[dateFormatter dateFromString:startdate]
toDate:End
options:0];
if(components.year > 0){
ageTextField.text=[NSString stringWithFormat:@"%d",components.year];
}
}
答案 0 :(得分:1)
- (void)setDate:(NSDate *)date animated:(BOOL)animated
是在日期选择器上设置日期的功能。所以现在需要使用NSDate将文本字段中设置的日期作为日期对象传递。如果文本字段的输入是字符串,那么您可以这样做:
NSString *dateString = @"09-08-2013";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
现在将其传递给第一个函数。希望这有帮助。
答案 1 :(得分:1)
-(void)buttonPressed:(id)sender
{
datePicker = [[UIDatePicker alloc] init];
datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
CGSize pickerSize = [datePicker sizeThatFits:CGSizeZero];
pickerToolbar.frame = CGRectMake(0,200, 320, 44);
datePicker.frame = CGRectMake(0.0, 244, pickerSize.width, 460);
datePicker.backgroundColor = [UIColor blackColor];
[self.view addSubview:datePicker];
- (void) dateChanged:(id)sender
{
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
birthdayTextField.text = [NSString stringWithFormat:@"%@",
[dateFormatter stringFromDate:birthdayDatePicker.date]];
}
希望这对你有用......
答案 2 :(得分:0)
NSDateFormatter *dateFormat;
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"h:mm a"];
NSDate *exampleDateFromString =[dateFormat dateFromString:@"8:48 AM"];
date-picker.minimumDate=exampleDateFromString;
[date-picker setDate:exampleDateFromString];