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 视图中以英文提交日期