为什么NSDateFormatter在2月29日返回nil

时间:2012-03-01 07:08:05

标签: iphone objective-c nsdateformatter

当我尝试使用格式化程序字符串解析字符串@“02291120”时,NSDateFormatter返回nil

@"MMddHHmm"

但是,2月29日是有效日期(闰年)。如何确保解析器返回的结果不是nil?

2 个答案:

答案 0 :(得分:7)

您没有告诉日期格式化程序使用哪一年。

如果您未在日期格式中包含年份,则默认情况下使用1970。如果您希望默认情况下使用不同的年份,则必须为日期格式化程序指定默认日期。例如,如果您希望它使用当前年份,您只需将默认日期设置为当前日期:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat = @"MMddHHmm";
df.defaultDate = [NSDate date];
NSDate *date = [df dateFromString:@"02291120"];

答案 1 :(得分:0)

如果您想获得日期“0229”,您必须添加如下年份格式:

@"YYYYMMddHHmm" @"201202291120"