iOS中支持的日历有三种,分别是:公历,日本日历和佛教日历。在选择日本日历和佛教日历时输出[NSDate date]会出现错误,因为只输出了数字,而忽略了前缀(平成、昭和、明治、佛历等)的原因。为了获得正确的返回日期,可以按如下方法设置NSDateFormatter来解决:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]];
[dateFormatter setLocale:locale];
NSString *dateStr = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];
[locale release];
输出dateStr为正常的日期字符串。