我有一个小问题NSDateComponents。
我现在拥有的看起来像这样:[2014-8-08 08:00:00]因为我最初使用当前时间(使用[NSDate date]),然后通过comps手动设置小时,分钟和秒为其他东西。
我的目标是使用字符串将日期与时间分开。我仍然希望能够使用当前时间,但是当涉及到[comps设置小时/分/秒]时,我想使用字符串设置它们。
字符串的格式应该是这样的:(06:00:00)。
我需要在打开NSDatePicker时将此设置为默认选择。因此,当选择日期时,它应该看起来像[2014-8-08 06:00:00]。
我可以通过字符串设置小时/分/秒吗?
我必须使用字符串。06:00:00类似于查询商店开门时间的MYSQL查询。我与数百家商店合作。每家店的营业时间都不一样。由于
弗兰克startTimeDatePicker.datePickerMode = UIDatePickerModeDateAndTime;
NSDate *now = [NSDate date];
startTimeDatePicker.maximumDate = now;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components: NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
[comps setHour:8];
[comps setMinute:0];
[comps setSecond:0];
NSDate *dateFromComps = [calendar dateFromComponents:comps];
正确答案。您必须单独分隔字符串,并将它们输入到组件中。
NSArray *results = [storeOpen componentsSeparatedByString:@":"];
if ([results count] == 3) {
NSLog(@"1 - %d", [[results objectAtIndex:0] intValue]);
NSLog(@"2 - %d", [[results objectAtIndex:1] intValue]);
NSLog(@"3 - %d", [[results objectAtIndex:2] intValue]);
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components: NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
[comps setHour:[[results objectAtIndex:0] intValue]];
[comps setMinute:[[results objectAtIndex:1] intValue]];
[comps setSecond:[[results objectAtIndex:2] intValue]];
NSDate *dateFromComps = [calendar dateFromComponents:comps];