不确定是什么问题,但是我得到了“07”而不是一个月的名字“七月”。
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setLocale:[NSLocale systemLocale]];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];
我已经尝试了M,MM,MMM,MMMM,并且所有这些都给了我一个数字,而不是月份名称,但是前导0的数量不同。
答案 0 :(得分:49)
原来是第二行setLocale
的问题。我假设在手动设置locale
时系统不会默认使用英文月份名称?我住的是英语locale
,但也许没关系。
在任何情况下,不设置区域设置都会修复月份名称问题。
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];
答案 1 :(得分:10)
问题是语言环境,而不是格式。看看这个:
http://waracle.net/mobile/iphone-nsdateformatter-date-formatting-table/
基本上,“MMMM”会为您提供当月的全名。
答案 2 :(得分:7)
-systemLocale
不是你想要的。如果没有其他语言环境适合,它将返回后备语言环境。使用-currentLocale
获取用户当前的区域设置。
此外:
您应该使用NSDateFormatter
的{{1}}方法来获取正确的日期格式。在某些语言中,这一天是在月份之前等,反之亦然。