在NSDate的另一个时间换掉时间?

时间:2013-08-19 09:46:54

标签: iphone ios objective-c cocoa-touch nsdate

我从UIDatePicker获得时间,从特定日期(名称 myDate )获得另一个日期 (NSDate)
我想将UIDatePicker(仅)时间添加到(代替myDate'时间) myDate

  

我的目标是在适当的时候解雇NSLocalNotification:

我关注This Question,但这并不能解决我的问题。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

您链接的问题是一个很好的指南。您应该从日期选择器获取时间的日期组件(这是您要添加的小时,分​​钟和秒的时间量),然后使用日历将这些日期组件添加到当前日期。

答案 1 :(得分:0)

试试这个希望对你有所帮助

 NSCalendar *currentCalender = [NSCalendar autoupdatingCurrentCalendar];
 NSDate *timeDate = [self.datePicker date];
 NSDateComponents *timeComponents = [currentCalender components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:timeDate]


 NSDateComponents *dateComponents = [currentCalender components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: myDate];


 NSDateComponents *setDate = [[NSDateComponents alloc] init];
[setDate setDay:dateComponents.day];
[setDate setMonth:dateComponents.month];
[setDate setYear:dateComponents.year];

[setDate setHour:timeComponents.hour];
[setDate setMinute:timeComponents.minute];
[setDate setSecond:timeComponents.second];

NSDate *date = [currentCalender dateFromComponents:setDate];


答案 2 :(得分:0)

嗨修改此代码希望您能得到解决方案。

NSDate *date = d;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateStyle:NSDateFormatterShortStyle];   // if you want to show the date to the user
[df setTimeStyle:NSDateFormatterShortStyle];   // if you want to show the date to the user
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];  // if you want to use the date for your model
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
[df setTimeZone:destinationTimeZone];

NSString *dateString = [df stringFromDate:date];
NSLog(@"%@", dateString);

如果您有任何疑问,请告诉我?