我对 NSDateComponents 有一个小问题。
我现在的样子如下:[2014-8-08 08:00:00]因为我最初使用当前时间(使用[NSDate date]),然后设置小时,分钟和秒通过 comps 手动输入其他内容。
我的目标是使用字符串将日期与时间分开。我仍然希望能够使用当前时间,但是当涉及[comps set Hour / Minute / Second]时,我想用字符串设置它们。
字符串的格式如下:(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];
答案 0 :(得分:2)
这是正确的答案。您必须单独分隔字符串,并将它们输入到组件中。
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];