2013-10-13 58 views
0

嘗試以下字符串轉換爲一個NSDate - 我想我的DateFormatter設置正確,但它不工作:的NSDate從字符串轉換

NSString *dateToCheckString = @"Friday, Dec. 6, 2013 at 7:00 PM"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"eeee, MMM. dd, yyyy at hh a"]; 
NSDate *dateToCheckNSDate = [[NSDate alloc] init]; 
dateToCheckNSDate = [dateFormatter dateFromString:dateToCheckString]; 

// Log it out to see the result: 
NSLog(@"Conversion yielded: '%@'", [dateToCheckNSDate description]); 

我得到的輸出是(null)

任何想法?

+2

at at'at'。 – Jano

+0

您應該使用[dateFormatter stringFromDate:dateToCheckNSDate]打印字符串,否則您將在輸出中獲得不同的小時數,具體取決於您的時區。 – Jano

+0

謝謝!你做了2個好點(關於使用'at'和關於使用'stringFromDate') - 但大衛Rönnqvist的答案(下)增加了幾個更重要的部分。所以正確的答案是把你的意見和他的意見拼湊在一起。不幸的是,因爲他發佈了他的實際答案,並且發佈了你的評論,所以我只能稱讚他;-(但你確實應該得到50%的分數,所以再次感謝 – sirab333

回答

3

不,這是不正確的。 dd是填充日期(在您的示例中爲06),因此應該只是d。另外「7:00」不符合hh(填補時間)。您正在尋找h:mm

+1

謝謝你 - 它的工作原理!我在上面的評論中還使用了@Jano的建議以及您的意見來編寫最終的正確工作代碼。) – sirab333