Ios NSDateFormatter不显示完整的月份名称,仅显示一位数
不确定问题是什么,但我没有得到一个月的名字“七月”,而是得到了“07”Ios NSDateFormatter不显示完整的月份名称,仅显示一位数,ios,nsdate,nsdateformatter,Ios,Nsdate,Nsdateformatter,不确定问题是什么,但我没有得到一个月的名字“七月”,而是得到了“07” 我试过M,MM,MMM,MMMM,它们都给了我一个数字,而不是月份名称,尽管前导0的数量不同 -systemLocale不是您想要的。如果没有其他区域设置适合,则返回备用区域设置。使用-currentLocale获取用户的当前区域设置 另外: 您应该使用NSDateFormatter的+dateFormatFromTemplate:options:locale:方法来获取正确的日期格式。在某些语言中,日期早于月份,反之亦然。
我试过M,MM,MMM,MMMM,它们都给了我一个数字,而不是月份名称,尽管前导0的数量不同
-systemLocale
不是您想要的。如果没有其他区域设置适合,则返回备用区域设置。使用-currentLocale
获取用户的当前区域设置
另外:您应该使用
NSDateFormatter
的+dateFormatFromTemplate:options:locale:
方法来获取正确的日期格式。在某些语言中,日期早于月份,反之亦然。第二行,setLocale
出现问题。我假设在手动设置区域设置时,系统不会默认使用英文月份名称?我生活在一个讲英语的地区,但也许这并不重要
在任何情况下,不设置区域设置都会修复月份名称问题
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];
问题在于区域设置,而不是格式。看看这个:
基本上,“MMMM”会告诉你这个月的全名。我想这行就是问题所在。。[dateFormat setLocale:[NSLocale systemLocale]];不知道您使用systemLocale
的目的是什么,但您可以尝试currentLocale
而不是systemLocale
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];