更改NSDate工作日和月份的语言

时间:2013-03-16 08:11:16

标签: ios objective-c nsdate nsdateformatter nstimezone

我想显示这样的日期:工作日7个月。 我做了这个,我的语法正确。

NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEEE dd MMMM"];
[df setTimeZone:[NSTimeZone localTimeZone]];

记录的结果是:3月16日星期六。我只想要法国约会,而不是英国约会。我尝试设置本地时区但它什么都没改变。你知道怎么做吗?

2 个答案:

答案 0 :(得分:7)

使用标识符初始化语言环境。 您可以从

获取所有可用的标识符
[NSLocale availableLocaleIdentifiers];

我相信@“fr_BI”是法语标识符之一

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_BI"];
[dateFormatter setLocale:locale];

答案 1 :(得分:2)

使用适当的NSLocale对象设置日期格式化程序的区域设置。

另外,要小心那些硬编码的日期格式。您的用户可能不喜欢以该格式查看日期,因此您应首先通过+[NSDateFormatter dateFormatFromTemplate:options:locale:]运行格式字符串。 WWDC 2012会议“国际化技巧和诀窍”提供了大量有用的信息。