将NSString转换为NSDate不起作用

时间:2013-12-20 07:52:38

标签: iphone nsdate nsdateformatter

我已经阅读了DateFormatting指南,但我仍然无法理解为什么我的日期转换不符合要求。例如:

NSString *str1 = @"12/20/2013 12:39:55 PM";
NSDateFormatter *dateFo = [[NSDateFormatter alloc] init];

[dateFo setDateFormat:@"MM/dd/YYYY hh:mm:ss a"];
NSDate *serverDate1 = [NSDate date];
serverDate1 = [dateFo dateFromString:str1];

作为回报,我的日期为“ 2013-01-05 07:09:55 +0000 ”。 我已经尝试了很多为什么NSDate没有返回正确的日期。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

而不是YYYY使用yyyy中的dateFormat:

NSString *str1 = @"12/20/2013 12:39:55 PM";
NSDateFormatter *dateFo = [[NSDateFormatter alloc] init];

[dateFo setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *serverDate1 = [NSDate date];
serverDate1 = [dateFo dateFromString:str1];

答案 1 :(得分:1)

NSString *dateWithInitialFormat = @"12/20/2013 12:39:55 PM";
NSDateFormatter *dateFo = [[NSDateFormatter alloc] init];
[dateFo setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *serverDate1 = [NSDate date];
serverDate1 = [dateFo dateFromString:dateWithInitialFormat];

这将为您提供解决方案