我有以下代码来解析字符串中的日期:
NSString * str = @"8/13/2010 1:59:00 PM";
NSDateFormatter * dateFormat2 = [[NSDateFormatter alloc] init];
[dateFormat2 setDateFormat:@"MM/dd/yyyy h:mm:ss a"];
NSDate * orderDate = [dateFormat2 dateFromString:str ];
但是orderDate总是空出来,我做错了什么?什么是正确的dateFormatString?
这在模拟器中工作正常,但在iphone 4 ios 4.0
上为空答案 0 :(得分:1)
使用@Liam评论中的这个修复帮我解决了这个问题,我只是张贴以防万一对其他人有帮助,
NSDateFormatter * parser = [[NSDateFormatter alloc] init];
NSLocale * locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]autorelease];
[parser setLocale:locale ];
[parser setFormatterBehavior:NSDateFormatterBehavior10_4];
[parser setDateFormat:@"M/d/yyyy h:mm:ss a"];
NSDate * orderDate = [parser dateFromString:str ];
我意识到这个错误我发现只有当iphone用户将他们的时钟设置为24小时军事时间时才会发生,
答案 1 :(得分:0)
问题不在于日期格式,而是仅在Mac OS X v10.4到Mac OS X v10.5上支持init
方法(这可能是它在模拟器中工作的原因)。尝试使用
initWithDateFormat:allowNaturalLanguage:
代替。有关详细信息,请参阅here。