它返回nil的原因是因爲你調用了錯誤的方法,日期字符串中沒有T
(單引號內的字符是文字),並且PM不是「P.M.」。沒有打破它但不完全正確的事情是,你試圖解析一個月爲一分鐘,你的日期字符串可以有最少1位數的月份,日期和小時,所以你不應該使用2填充它們的說明符如果你是從日期創建一個字符串。試試這個:
NSString *currentDateString = @"8/5/2011 1:38:13 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//Set the AM and PM symbols
[dateFormatter setAMSymbol:@"AM"];
[dateFormatter setPMSymbol:@"PM"];
//Specify only 1 M for month, 1 d for day and 1 h for hour
[dateFormatter setDateFormat:@"M/d/yyyy h:mm:ss a"];
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];
NSLog(@"current date: %@", currentDate);
//Example of the format using the actual date
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);
[dateFormatter release];
來源
2011-08-05 18:00:38
Joe
不要忘記釋放dateFormatter :-D – kviksilver
我也許應該補充一點,之前的代碼是複製粘貼:),在OP沒有把currentDateString,在這個問題dateFormatter代碼,所以我只是添加到頂部:) – Joe
[self dateFromString:@「MM/dd/yyyy hh:mm:ss」andDateString:@「2013-08-01 12:14:14」]; hello joe ,,我沒有在NSDate對象中獲取這種格式的日期 – Apple