Nsdateformatter 以所选电话的语言返回我一天。它可以一直只返回英语吗?

Posted

技术标签:

【中文标题】Nsdateformatter 以所选电话的语言返回我一天。它可以一直只返回英语吗?【英文标题】:Nsdateformatter returns me day in language of the phone selected. Can it return me only English all the time? 【发布时间】:2011-11-24 06:16:47 【问题描述】:

我正在使用 dateformatter 在我的应用程序中获取日期和时间。但是,当我更改手机的语言时,我遇到了一个问题 dateformatter 返回我手机所选语言的日期和时间,由于我们不支持多种语言,我的应用程序崩溃了。

请找到下面的代码sn-p:

NSDate *date=[NSDate date];
NSDateFormatter *objTimeFotmatter=[[NSDateFormatter alloc]init];
[objTimeFotmatter setDateFormat:@"HH:mm"];

NSDateFormatter *objDayFotmatter=[[NSDateFormatter alloc]init];
[objDayFotmatter setDateFormat:@"EEEE"];

NSString *objTime=[objTimeFotmatter stringFromDate:date];
NSString *objDay=[objDayFotmatter stringFromDate:date];

NSLog(@"objTime=%@",objTime);
NSLog(@"objDay=%@",objDay);

当我选择电话语言为古吉拉特语(印度)时,我使用 nslog 看到的输出如下,

2011-11-24 11:23:20.221 Belkin_Plugin[1110:707] objTime=૧૧:૨૩
2011-11-24 11:23:20.227 Belkin_Plugin[1110:707] objDay=ગુરુવાર

【问题讨论】:

这可能是同一个问题as this one ??? 【参考方案1】:

将以下行添加到日期格式化程序。

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:usLocale];

在你的情况下,

NSDateFormatter *objTimeFotmatter=[[NSDateFormatter alloc]init];
[objTimeFotmatter setDateFormat:@"HH:mm"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[objTimeFotmatter setLocale:usLocale];

同样适用于所有日期格式化程序。

【讨论】:

【参考方案2】:

斯威夫特

let dateFormatter = DateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US") as Locale!
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
let resultsDate = dateFormatter.string(from: date)

【讨论】:

【参考方案3】:

试试这个代码:

NSDate *date=[NSDate date];
NSDateFormatter *objTimeFotmatter=[[NSDateFormatter alloc]init];
[objTimeFotmatter setDateFormat:@"HH:mm"];
[objTimeFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]
autorelease]];
NSDateFormatter *objDayFotmatter=[[NSDateFormatter alloc]init];
[objDayFotmatter setDateFormat:@"EEEE"];
[objDayFotmatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]
autorelease]];
NSString *objTime=[objTimeFotmatter stringFromDate:date];
NSString *objDay=[objDayFotmatter stringFromDate:date];
[objDayFotmatter release];
[objTimeFormatter release];

NSLog(@"objTime=%@",objTime);
NSLog(@"objDay=%@",objDay);

【讨论】:

以上是关于Nsdateformatter 以所选电话的语言返回我一天。它可以一直只返回英语吗?的主要内容,如果未能解决你的问题,请参考以下文章

处理 NSDateFormatter 语言环境“feehur”的最佳方法是啥?

NSDateFormatter:仅当应用程序针对该语言进行本地化时才显示本地化日期

Nsdateformatter日返回我在选择手机的语言。它可以返回我只有英语所有的时间?

以不同语言显示引导日期选择器日期,然后在 asp.net razor 视图中以英文提交日期

NSDateFormatter 给出不同的输出/错误(GMT?)时间

iphone--有关日历中NSDateFormatter中英文