NSDateFormatter返回nil NSDate对象

时间:2010-10-11 20:21:51

标签: iphone

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
[aDateFormatter setLocale:aLocale];
[aDateFormatter setDateStyle:NSDateFormatterFullStyle];
[aDateFormatter setDateFormat:@"EEE, MMM dd, yyyy"];
NSDate *aDateFromString = [aDateFormatter dateFromString:aKey];

下面, aKey = lun,2010年10月11日
aLocale = fr_CH

我的aDateFromString即将nil。我的代码出了什么问题?

2 个答案:

答案 0 :(得分:1)

要注意的一些事项:

  • 如果字符串包含完整的月份名称
  • ,请使用MMMM(四位女士)代替MMM
  • 在fr_CH中,10月的MMMM是“octobre”(“re”不是“呃”)
  • 在fr_CH中,周一的EEE是“lun”。 (期末)

确保aKey格式正确并更正DateFormat字符串。

答案 1 :(得分:0)

稍微解决这个问题,下面这段代码获得了合法的NSDate:

NSString *df = @"EEE, MMM dd, yyyy";
NSString *ds = @"lun., Octobre 11, 2010";
NSLocale *aLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_CH"];

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
[aDateFormatter setLocale:aLocale];
[aDateFormatter setDateStyle:NSDateFormatterFullStyle];
[aDateFormatter setDateFormat:df];
NSDate *aDateFromString = [aDateFormatter dateFromString:ds];