如何结合两个UIDatePickers的日期和时间?

我的应用程序中有两个UIDatePickers ,一种模式用于选择日期,另一种模式用于选择时间模式。 当达到确切的日期和时间时,我已经发出通知。 我能够在正确的时间触发提醒,但问题是没有检查日期。 有没有办法同时检查日期和时间?

Thanx提前……

编辑

 NSDate *date1 = [datePicker date]; NSDate *date2 = [timePicker date]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; unsigned unitFlagsDate = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; NSDateComponents *dateComponents = [gregorian components:unitFlagsDate fromDate:date1]; unsigned unitFlagsTime = NSHourCalendarUnit | NSMinuteCalendarUnit ; NSDateComponents *timeComponents = [gregorian components:unitFlagsTime fromDate:date2]; [dateComponents setHour:[timeComponents hour]]; [dateComponents setMinute:[timeComponents minute]]; NSDate *combDate = [gregorian dateFromComponents:dateComponents]; UILocalNotification *localNotif = [[UILocalNotification alloc] init]; if (localNotif == nil) return; NSDate *fireTime = combDate; localNotif.fireDate = fireTime; localNotif.alertBody = @"Alert!"; localNotif.soundName = UILocalNotificationDefaultSoundName; [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 

 NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *dateComponents = [calendar components:NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit fromDate:self.datePicker.date]; NSDateComponents *timeComponents = [calendar components:NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:self.timePicker.date]; NSDateComponents *newComponents = [[NSDateComponents alloc]init]; newComponents.timeZone = [NSTimeZone systemTimeZone]; [newComponents setDay:[dateComponents day]]; [newComponents setMonth:[dateComponents month]]; [newComponents setYear:[dateComponents year]]; [newComponents setHour:[timeComponents hour]]; [newComponents setMinute:[timeComponents minute]]; NSDate *combDate = [calendar dateFromComponents:newComponents]; NSLog(@" \ndate : %@ \ntime : %@\ncomDate : %@",self.datePicker.date,self.timePicker.date,combDate); 

尝试这个:

将日期转换为NSString,将时间转换为NSString。

将时间应用到日期字符串中。

现在将最终字符串转换为NSDate

示例:(从您的方面添加validation)

  NSDate *date1 = [datePicker date]; NSDate *date2 = [timePicker date]; NSString *date = [NSString stringWithFormat:@"%@",date1]; NSString *time = [NSString stringWithFormat:@"%@",date2]; NSString *dateAndTime = [NSString stringWithFormat:@"%@ %@",date,time]; NSDate *dateTime = [self dateFromString:dateAndTime]; - (NSDate*) dateFromString:(NSString*)aStr { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; //[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss a"]; [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSLog(@"%@", aStr); NSDate *aDate = [dateFormatter dateFromString:aStr]; [dateFormatter release]; return aDate; }