使用NSDateFormatter将Int转换为Month String

时间:2015-11-11 18:19:16

标签: ios objective-c nsdateformatter

我一直在这里使用另一个答案来做这件事。我将我的日期作为Int存储在我的数据库中,但我希望它在UI中显示为整整一个月。所以在刷新/重新加载时我试图获得Int月值 - >转换为String full month - >在textfield中显示。

我目前已经注销了月份和完整日期,但在重新加载的文本字段中显示为(null) / 05 / 1993

我做错了什么?

NSString *monthString = [self.datePickerFormat monthSymbols] [(self.birthdayMonth - 1)];
NSLog(@"%@",monthString);

NSString *dateString = [NSString stringWithFormat:@"%@ / %ld / %ld",monthString,(long)self.birthdayDay,(long)self.birthdayYear];
NSLog(@"%@",dateString);

self.birthdayField.text = [NSString stringWithFormat:@"%@",dateString];

self.birthdayMonth是一个整数。 self.datePickerFormat是我已声明为属性的NSDateFormatter。编辑:好吧,日志不会以正确的月份回来,所以我不知道发生了什么......

还有另一种更好的方法吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

要从月份编号获取月份名称,请以这种方式使用日期格式化程序:

NSInteger month = 7;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *monthString = dateFormatter.monthSymbols[(month-1)];

月份名称将采用您的手机语言环境语言。虽然不推荐,但您可以覆盖区域设置:

dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];