Создание NSDate из целых чисел (год ... второй) с Какао / target-C - PullRequest
9 голосов
/ 15 марта 2011

У меня год, mont, ..., второй в целочисленном виде, и мне нужно собрать NSDate из них.Я попробовал этот код, но я получил (ноль).

NSDateFormatter *tempFormatter = [[[NSDateFormatter alloc]init]autorelease];
[tempFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];
NSString* message = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second];
NSDate *day3 = [tempFormatter dateFromString:message];

Что не так с этим кодом?

Ответы [ 2 ]

34 голосов
/ 15 марта 2011

Было бы проще создать NSDateComponents с вашими компонентами даты, а затем использовать NSCalendar dateFromComponents:, чтобы преобразовать его в дату. Документация для NSDateComponents содержит пример того, как именно это сделать:

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:day];
[comps setMonth:month];
[comps setYear:year];
[comps setHour:hour];
[comps setMinute:minute];
[comps setSecond:second];
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [cal dateFromComponents:comps];
[comps release];
5 голосов
/ 15 марта 2011

вместо

[tempFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];

запись

[tempFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
...