【发布时间】:2010-11-05 20:04:00
【问题描述】:
我需要在 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 好像没有这个。
想法?
【问题讨论】:
-
我不确定我是否理解这个问题,但您是否正在寻找分组分隔符?它使用
NSLocaleGroupingSeparator键入。请参阅此处的NSLocale文档:developer.apple.com/library/ios/#documentation/Cocoa/Reference/… -
@Justin:我认为分组分隔符是 10^3 个位置之间的标点符号,例如在美式英语中,逗号为 123,456,789。