将NSDate解析为MM/d/YYY hh:MM-aaa格式的字符串不起作用



我很难解析类型为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];

最新更新