Установка dateStyle
и timeStyle
для форматера переопределит dateFormat
, который вы установили вручную. Следующее должно работать как ожидалось:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH-mm"];
[formatter setLenient:YES];
NSLog(@"Format: %@",[formatter dateFormat]);
[formatter release];
Полученный объект даты будет близок к началу эпохи, потому что вы не указываете год, месяц и день. Если вы хотите, чтобы время в текстовом поле представляло время на сегодняшнюю дату, вам придется добавить дополнительный код:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH-mm"];
[formatter setLenient:YES];
NSDate *time = [formatter dateFromString:[textbox text]];
[formatter release];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit |
NSHourCalendarUnit |
NSMinuteCalendarUnit
fromDate:[NSDate date]];
NSDateComponents *timeComps = [calendar components:NSHourCalendarUnit |
NSMinuteCalendarUnit
fromDate:time];
[comps setHour:[timeComps hour]];
[comps setMinute:[timeComps minute]];
NSDate *date = [calendar dateFromComponents:comps];
NSLog(@"Date from textfield: %@",date);