2013-01-13 93 views
3

爲什麼我的NSDateFormatter返回null? 這裏是我的代碼:爲什麼我的NSDateFormatter返回null?

NSString *dateString = @"21-12-2012 11:05:15"; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss"]; 
    NSDate *dateFromString = [[NSDate alloc] init]; 
    dateFromString = [dateFormatter dateFromString:dateString]; 

    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 
    NSString *strDate = [dateFormatter stringFromDate:dateFromString]; 

strDate回報

21/12/2012 

但當:

NSString *dateString = @"13-12-2012 13:17:58"; 

strDate回報null

這是非常奇怪的,任何人都經歷了相同?

+0

聲明:'的NSDate * dateFromString = [[NSDate的頁頭] INIT]'是不必要的,下面的語句將覆蓋它,只需使用:'的NSDate * dateFromString = [dateFormatter dateFromString :dateString];'。 – zaph

+0

是的,你是對的,我會重構我的代碼。謝謝 – Rendy

回答

6

使用HH而不是hh。

hh通常是12小時的時間,而HH通常是24小時的時間。

[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 

的一個很好的官方參考,as linked by Apple themselves,是here。正如Zaph所提到的,另一個好的表格是here

+0

哇你是正確的,謝謝!我會牢記這一點:) – Rendy

+0

沒問題。如果我幫助,那麼請點擊勾號?謝謝。 –

+0

當然,我需要一些分鐘來接受你的.. – Rendy

2

您應該使用

[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
+0

謝謝cynicalme,但我會接受其他答案,因爲這是第一個答案..再次感謝:) – Rendy