NSDateFormatter无法正常工作

时间:2011-08-18 06:14:08

标签: nsdateformatter

好的,我觉得有点愚蠢地问这个,但任何想法为什么这不起作用:

 {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"mmmm dd, yyyy"];

        NSDate *myDateFromString = [formatter dateFromString:creditDate.text];
         NSLog(@"%@", myDateFromString);
        [self.credit setCertificationDate: myDateFromString];
    }

返回null

1 个答案:

答案 0 :(得分:3)

格式和字符串不匹配,因为“m”是分钟,“M”是月份。所以“2012年8月18日”不能被解释,取而代之的是“MMMM dd yyyy”而你可以在unicode.org检查格式

我总是明确设置一个语言环境:

  NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
  [dateFormatter setLocale:usLocale];
  [usLocale release];

只要您不解析月份名称,如果您提供明确的格式字符串,那么您的真实语言环境是否为en_US无关紧要。

更多提示:

  • 使用硬编码字符串进行测试,以排除提供的日期错误。
  • 尝试更简单的格式化字符串,例如没有时间或月份的数字来隔离错误的部分。
  • 如果仍然无效,可以使用NSDateFormatter的getObjectValue:forString:range:error:获取有关错误的更多详细信息。