0

我对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]; 
4

1 回答 1

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];
于 2014-08-08T15:02:32.913 回答