2013-10-13 57 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