NSDateFormatter没有将字符串转换为日期

时间:2012-04-27 05:06:11

标签: objective-c nsdateformatter string-to-datetime

我正在使用NSDateFormatter将字符串转换为日期。但是,返回的日期是零。 只有我的硬编码字符串才会导致问题。当我使用stringFromDate:并将此NSString转换为NSDate时,没关系。

硬编码日期:
    2012-30-22T10:30:19 + 0530
dateFromString:
    2012-04-27T10:20:43 + 0530

我可以看到日期格式没有区别。

代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZ"];

NSString *string = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"string %@", string);  

日志:〜字符串2012-04-27T10:20:43 + 0530

NSDate *date = [dateFormatter dateFromString:string];
NSLog(@"date %@", date);

日志:〜约会2012-04-27 04:50:43 +0000

到目前为止一切顺利。从我的字符串返回一个日期。但是当我尝试使用我自己进入的日期时......

NSString *string2 = @"2012-30-22T10:30:19+0530";
NSLog(@"string2 %@", string2);

日志:〜约会2012-04-27 04:50:43 +0000

//Here comes the problem. 
NSDate *date2 = [dateFormatter dateFromString:string2];
NSLog(@"date 2 %@", date2);

日志:~date 2(null)

为什么当另一个日期不是时,此日期为空?

1 个答案:

答案 0 :(得分:0)

是你自己输入的字符串中的月份中的30个?因为它不知道第30个月它可能会搞砸了。尝试输入您自己的有效日期。