2014-01-29 201 views
3

我正在做簡單的字符串日期,反之亦然轉換在我的應用程序,但字符串沒有正確地轉換爲iOS6中的NSDate只在iOS的其他版本,它按預期工作。將字符串日期轉換爲NSDate

以下是我的代碼。

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd MMMM, yyyy EEEE"]; 
    [df setLocale:[NSLocale currentLocale]]; 

    NSLog(@"String From Date : %@",[df stringFromDate:[NSDate date]]); 

    NSDate *today = [df dateFromString:@"29 January, 2014 Wednesday"]; 
    NSLog(@"Date : %@",today); 
    NSLog(@"Date From String : %@",[df stringFromDate:today]); 

我在的iOS 6.0輸出爲:

String From Date : 29 January, 2014 Wednesday 
Date : 1999-12-28 18:30:00 +0000 
Date From String : 29 December, 1999 Wednesday 

我在iOS7輸出是:

String From Date : 29 January, 2014 Wednesday 
Date : 2014-01-28 18:30:00 +0000 
Date From String : 29 January, 2014 Wednesday 

我花很多時間在搜索日期轉換,但是這是一件奇怪的問題我正進入(狀態。任何人都可以幫助我解決這個問題......。

感謝您的支持。

+1

'NSDateFormatter'在iOS 6似乎並不喜歡'EEEE'在最後的位置,一種解決方法是使用''EEEE dd MMMM,yyyy''或者從'NSString'到'NSDate'時根本不解析EEEE'部分。 。 – Jkmn

回答

1

我認爲iOS6的問題是數據格式的風格,你所要做的就是替換該行

[df setDateFormat:@"dd MMMM, yyyy EEEE"]; 

與一個

[df setDateFormat:@"EEEE dd MMMM, yyyy"];