Bre*_*int 2 nsdate nsdateformatter nsdatecomponents ipad ios
我只想在 iPad 应用程序中显示当前月份和年份,例如“2012 年 11 月”,目前我正在将月份格式设置为“MMMM”,将年份格式设置为“yyyy”并将它们连接起来。然而,这对于大多数区域设置都适用,但不适用于“中国”区域。
我当前的代码将“中国”地区的月份和年份显示为,

然而,这是不对的。因为它应该像 iOS 日历应用程序中显示的那样,

关于如何实现这一点有什么想法吗?
编辑1:
NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat=@"MMMM";
NSString * monthString = [[dateFormatter stringFromDate:date] capitalizedString];
dateFormatter.dateFormat=@"yyyy";
NSString * yearString = [[dateFormatter stringFromDate:date] capitalizedString];
lblMonthAndYear.text = [NSString stringWithFormat:@"%@ %@",monthString,yearString];
Run Code Online (Sandbox Code Playgroud)
我认为您的日期格式化程序根本不使用区域设置,这里的关键是使用当前区域设置创建模板,而不仅仅是格式字符串,例如:
NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:@"MMMM d"
options:0
locale:[NSLocale currentLocale]];
dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = dateFormat;
Run Code Online (Sandbox Code Playgroud)