2011-01-23 1 views
1

現在の日付として設定されているが、datepickerの時刻として設定されている時刻を持つNSDateオブジェクトを作成したいとします(datepickerのモードは時刻です)。これどうやってするの?NSDateオブジェクトをdatepicker dateと組み合わせたカスタム日付に設定しますか?

+0

私はdatepickerから日付を使用することができますが、デフォルトでは現在の日付になります – Felix

答えて

1

実際にカスタム日付を使用する場合は、このようなものを使用してください。

- (IBAction)dpChange:(UIDatePicker *)sender { 
    // replace this with your custom date. 
    NSDate *myCustomDate = [NSDate dateWithTimeIntervalSinceNow:7*24*60*60]; 

    NSInteger dateFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 
    NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:dateFlags fromDate:myCustomDate]; 

    NSDate *myCustomTime = [sender date]; 
    NSInteger timeFlags = NSHourCalendarUnit | NSMinuteCalendarUnit; 
    NSDateComponents *timeComponents = [[NSCalendar currentCalendar] components:timeFlags fromDate:myCustomTime]; 

    NSDateComponents *newComponents = [[[NSDateComponents alloc] init] autorelease]; 
    [newComponents setYear:[dateComponents year]]; 
    [newComponents setMonth:[dateComponents month]]; 
    [newComponents setDay:[dateComponents day]]; 
    [newComponents setHour:[timeComponents hour]]; 
    [newComponents setMinute:[timeComponents minute]]; 
    [newComponents setSecond:0]; 
    NSDate *newDate = [[NSCalendar currentCalendar] dateFromComponents:newComponents]; 

    NSLog(@" Date: %@", myCustomDate); 
    NSLog(@" Time: %@", myCustomTime); 
    NSLog(@"Combined: %@", newDate); 
} 
関連する問題