将时间替换为另一个 NSDate 的时间?



我从UIDatePicker获取时间,从特定日期获取另一个日期(NSDate)(名称为myDate
我想将UIDatePicker(仅)时间添加到中(在myDate的时间的位置)myDate

我的目标是在适当的时间发射NSLocalNotification:

我关注这个问题,但它不能解决我的问题。

我该怎么做?

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

试试这个希望能帮助你

 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];


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

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);

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

最新更新