Уверен, что я просто что-то упустил. Но я искал это в течение нескольких дней, пытаясь найти, как показать 4-значный год при отображении NSDate со стилем NSDateFormatterShortStyle. Пожалуйста, дайте мне знать, если у вас есть решение. Вот код, который я использую сейчас.iphone shortdate с 4-значным годом
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease ];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
// add label for birth
UILabel *birthday = [[UILabel alloc] initWithFrame:CGRectMake(125, 10, 100, 25)];
birthday.textAlignment = UITextAlignmentRight;
birthday.tag = kLabelTag;
birthday.font = [UIFont boldSystemFontOfSize:14];
birthday.textColor = [UIColor grayColor];
birthday.text = [dateFormatter stringFromDate:p.Birth];
спасибо, но мне нужно локализовать – Dave
, чтобы локализовать, добавить строку dateFormatter.locale = [NSLocale autoupdatingCurrentLocale]; –
На самом деле вам также понадобится проверка в случае, если языковой формат уже yyyy, например. if ([formatString rangeOfString: @ "yyyy"]. location == NSNotFound) { NSString * fourDigitYearFormat = [[dateFormatter dateFormat] stringByReplacingOccurrencesOfString: @ "yy" withString: @ "yyyy"]; [dateFormatter setDateFormat: fourDigitYearFormat]; } –