iPhone使用用户区域设置显示日期,但使用其他语言

时间:2010-11-18 16:44:55

标签: iphone nsdateformatter nslocale

是否有任何解决方案可以使用他的语言环境设置向用户显示日期,但这些单词是否使用其他语言?

我想要的是向用户设置 en_US 日语(月份名称,工作日等)。

2 个答案:

答案 0 :(得分:5)

好问题。如果您首先使用用户的区域设置(默认)创建NSDateFormatter,设置其样式,然后存储当前日期格式,则可以。之后,将语言环境设置为您要显示的语言并重置日期格式:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateStyle:NSDateFormatterFullStyle];
NSString *usersDateFormat = [df dateFormat];
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier(@"de_DE")] autorelease]];
[df setDateFormat:usersDateFormat];
NSString *dateString = [df stringFromDate:[NSDate date]];

答案 1 :(得分:1)

NSDateFormatter的iOS类参考有以下示例代码:

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

它位于概述部分。

基本上,您手动设置区域设置,格式化程序使用该区域设置格式化给定日期。