从整数组装日期对象?

时间:2011-01-20 05:52:57

标签: objective-c ios cocoa-touch nsdate nsinteger

给定三个整数,表示日,月和年,哪些代码会将这些整数组合成日期对象?

2 个答案:

答案 0 :(得分:4)

您应该查看NSDateComponents

int y = 2011;
int m = 1;
int d = 15;


NSDateComponents *dc = [[NSDateComponents alloc] init];
[dc setYear:y];
[dc setMonth:m];
[dc setDay:d];

NSLog(@"%@: %@", [[dc date] class], [dc date]);

答案 1 :(得分:0)

NSDateFormatter使用Unicode Standard将日期字符串解析为日期。因此,将整数格式化为日期字符串,然后使用和NSDateFormatter进行解析:

// assume year, month and day are integers that are formatted properly and don't
// include invalid ranges
NSString* dateString = [NSString stringWithFormat:@"%04d %02d %02d", year, month, day];
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
// Choose a format of YEAR MONTH DATE per the standard
[formatter setDateFormat:@"yyyy MM dd"];
NSDate* date = [formatter dateFromString:dateString];
[formatter release];

您可以将格式字符串设置为浮动您的船的任何格式,只要您使用Unicode标准(上面链接)并将整数转换为相同的格式(显然)。