使用Cocoa/objective-C从整数(年...第二)构建NSDate

pro*_*eek 9 cocoa objective-c nsdate

我有年份,mont,...,整数类型的第二个,我需要从它们构建NSDate.我尝试了这段代码,但我得到了(null).

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];
Run Code Online (Sandbox Code Playgroud)

这段代码出了什么问题?

Ano*_*mie 34

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];
Run Code Online (Sandbox Code Playgroud)


And*_*rsK 5

代替

[tempFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];
Run Code Online (Sandbox Code Playgroud)

[tempFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
Run Code Online (Sandbox Code Playgroud)