我需要在 iPhone 上以“hh:mm:ss”格式显示计时器,但希望将其本地化。例如,芬兰在时间组成部分之间使用句点而不是冒号 (hh.mm.ss)。如果我处理的是“时间”,Apple 的 NSDateFormatter 就可以解决问题,但我需要显示远大于 24 的小时数。
我无法使 NSDate/NSDateFormatter 工作,因为当你用几秒钟制作一个时......
NSDate *aDate = [NSDate dateWithTimeIntervalSinceReferenceDate:aTotalSeconds];
...每 86,400 秒(一天的价值)NSDate 会自动递增日期,而小时、分钟和秒会返回到零。我需要让它在任意秒数内工作而不滚动。例如,对于 86,401 秒,我想显示 24:00:01(或芬兰的 24.00.01)。
我的代码可以很好地管理总秒数,所以我遇到的唯一问题是显示。一个简单的...
[NSString stringWithFormat:@"%d%@%d%@%d", hours, sepString, mins, sepString, secs]
...如果我能找到一种方法来获取本地化的“sepString”(时间分量分隔符),就会起作用。 NSLocale 好像没有这个。
想法?
以下是有关此主题的信息,供其他可能试图找出世界不同地区使用什么字符来分隔时间组成部分的人使用。我检查了 iPhone - iOS 版本 4.1 (8B117) 上的所有“区域格式”设置,发现除了七个区域外,所有区域都使用冒号 (hh:mm)。这是其他的(它们的 NSLocaleCountryCode 在大括号中)。
使用句点,hh.mm
• 丹麦语(丹麦){DK}
• 芬兰语(芬兰){FI}
• 塞尔维亚黑山(西里尔文){ME}
• 塞尔维亚黑山(拉丁语){ME}
• 塞尔维亚语(西里尔文){RS}
• 塞尔维亚语(拉丁语){RS}
使用破折号,hh-mm
• 马拉地语(印度){IN}
请注意,印度(不是马拉地语印度)也有国家代码 IN 并且使用冒号。因此,仅检查国家/地区代码是不够的,您还必须查看其他 NSLocale 字段。我还没有浏览所有字段,但我怀疑 NSLocaleScriptCode 或 NSLocaleVariantCode 可能会区分它们。这种复杂性就是为什么Apple应该在SDK中向我们公开这个角色。我确实将其记录在雷达中,所以如果您同意,也请提出请求,请求的数量对于他们决定做什么非常重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)