日本本土化迫使AM / PM展示

时间:2011-01-21 16:08:51

标签: iphone objective-c date unicode localization

我试图在iOS中返回“H:mm”的setDateFormat的本地化形式。

大多数本地化都会返回24小时表单,但对于日语本地化,它会返回存在AM / PM的字符串(显然是汉字形式)。

根据这个:http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns,'H'将返回24小时形式的时间,并且它适用于其他东亚本地化(测试韩语和中文本地化)。

有人可以提供有关iOS显示AM / PM的原因的见解,即使我没有指定它显示日语本地化吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

您可以分享一些关于如何设置/获取日语本地化的源代码吗?

这是我得到的:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"H:mm"];

NSDate *date = // some time after noon

[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en"]];
NSLog(@"en: %@", [formatter stringFromDate:date]);
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ja"]];
NSLog(@"jp: %@", [formatter stringFromDate:date]);
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ko"]];
NSLog(@"ko: %@", [formatter stringFromDate:date]);
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];
NSLog(@"cn: %@", [formatter stringFromDate:date]);

显示:

en: 14:06  
jp: 14:06  
ko: 14:06 
cn: 14:06

或使用默认的格式化程序样式,并重新运行它:

[formatter setDateStyle:NSDateFormatterShortStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];

结果:

en: 1/21/11 2:13 PM
jp: 11/01/21 14:06
ko: 11. 1. 21. 오후 2:06
cn: 11-1-21 下午2:06

答案 1 :(得分:0)

检查设置 - >常规 - >日期和时间是否将24小时时间设置为开启

相关问题