0

我正在使用 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);

日志:〜日期2(空)

为什么当另一个日期不是时这个日期是空的?

4

1 回答 1

0

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

于 2012-04-27T05:13:33.343 回答