说我想在星期五下午3点和#34;创建一个日期。
我知道今天是星期一(白天= 1)。星期五是第6天。我知道我想创造的时间是15。
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:6];
[comps setMonth:currentDate.month];
[comps setYear:currentDate.year];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
我猜这可能在某些情况下有效。但不是如果星期五与今天不同的月份或年份。有没有一个强大的解决方案,或者我是否必须手动考虑我提到的边缘情况?
编辑:我不知道建议日期的月份或年份。我知道今天的约会。我只知道提议日期的那一天,并且它是从那天开始的那一天的下一个日期。所以,从现在开始的下一个星期五,下午3点。答案 0 :(得分:1)
我不确定我是否完全明白你需要什么,但你可以建立一个'字符串日期'并将其转换为NSDate:
NSString *dateFormat @"MM/dd/yyyy hh:mm a";
NSString *myDateString = @"09/22/2014 16:30 pm";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:dateFormat];
preselectedDate = [df dateFromString: myDateString];