2010-08-16 91 views
1

獲得一個的NSString如下:的NSDate從NSString的問題

NSString *lastSyncDate = [[items objectAtIndex:0] objectForKey:@"LastSyncDate"]; 

這個值是:1/1/2010 12:00:00 AM

我使用下面的轉換爲一個日期:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setTimeStyle:NSDateFormatterFullStyle]; 
[df setDateFormat:@"MMMM d, y HH:mm:ss ZZZ"]; 
NSDate *mySyncDate = [df dateFromString:lastSyncDate]; 

這給了我一個空值?

回答

4

您的日期格式與字符串的格式不匹配。

嘗試

[df setDateFormat:@"M/d/y hh:mm:ss a"]; 

[df setDateFormat:@"M/d/y h:mm:ss a"]; // if the hours aren't zero-padded 

格式字符串是在http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns

+0

真棒,大聲笑 - 我正在尋找一個列表可以告訴我什麼我可以用於DateFormat的我應該只是猜到了! – Slee 2010-08-16 20:16:14

+0

當然,日期字符串取決於您的區域格式/時區/日曆。強制ISO 8601風格日期([NSDate description]是一個合理的近似值,我認爲)更強大,或者僅存儲timeIntervalSinceReferenceDate或timeIntervalSince1970。 – 2010-08-16 21:09:06

0

我同意西莫坎貝爾描述的Unicode標準。但是,請注意,在格式化程序(NSDateFormatter)上設置時間樣式將不會影響dateFromString返回的結果。