2012-04-27 33 views
0

我使用NSDateFormatter將字符串轉換爲日期。但是,返回的日期是零。 這只是我的硬編碼字符串導致問題。當我使用stringFromDate:並將此NSString轉換爲NSDate時,它很好。NSDateFormatter不將字符串轉換爲日期

硬編碼日期:
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 4時50分:43 +0000

到目前爲止這麼好。日期從我的字符串中返回。但是當我嘗試使用我已經進入了自己的日期...

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

日誌:〜日期2012-04-27 4點50分四十三秒+0000

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

日誌:〜date 2(null)

爲什麼這個日期爲空時,其他日期不是?

+0

是本月30日在你自己輸入的字符串中發現了一個錯字嗎?它可能會因爲它不知道30個月而搞砸了。 – 2012-04-27 05:09:26

+0

我想它一定是那個。我不敢相信我沒有發現我自己。其實我沒有手動輸入這個字符串。它來自服務器。我猜服務器搞砸了。發佈它作爲答案,我會將其標記爲正確。 – SEG 2012-04-27 05:12:42

+0

非常感謝! :-) – SEG 2012-04-27 05:13:55

回答

0

是本月30日在你自己輸入的字符串中發現了一個錯字嗎?它可能會因爲它不知道30個月而搞砸了。嘗試輸入你自己的有效日期。