如何在NSDateComponents中使用字符串设置小时/分/秒



我有一个小问题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];

最新更新