我很难解析类型为3/3/2012 12:00:00 AM
的日期字符串。我有以下代码:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
formatter.dateFormat = @"MM/d/YYYY hh:mm aaa";
conference.beginDate = [formatter dateFromString:[jsonElement valueForKey:@"BeginDateMember"]];
但不幸的是,我所有的beginDate
都是null
。
我不确定:a)我需要在格式中包含转义反斜杠,b)我指定的区域设置错误,c)我指定格式错误,或者d)以上的组合。
这是一个有点非标准的日期格式,因此非常感谢您的帮助。
你可以试试这个:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/d/YYYY hh:mm aaa"]; //notice the change here ..
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; //.. and here
conference.beginDate = [formatter dateFromString:[jsonElement valueForKey:@"BeginDateMember"]];
[dateFormatter release];
如果仍然为null,请确保您的jsonElement实际上有一个值。
您的格式看起来有点偏离:
formatter.dateFormat = @"MM/d/yyyy hh:mm a";
您可以在此处找到支持的甲酸酯列表。
此外,如果您使用的不是ARC
而不是autorelease
,则NSLocale
:
formatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];