Jos*_*ane 2 time objective-c nsnumberformatter ios ios-charts
我正在使用图表框架,所以我可以显示统计数据,它采用简单的数字值,例如 1、5、17、99、1,574 等,并将它们绘制在图表上。
它提供了设置一个NSNumberFormatter以更优雅地显示这些值的选择。
我使用的数字是总秒数。例如 660 秒、1080 秒。
如何使用NSNumberFormatter使我的数字显示为小时、分钟、秒,而不是纯粹的总秒数?
DateComponentsFormatter,可从 iOS 8 获得,效果很好,特别是如果您想要轻松本地化。这里有些例子。
let duration : TimeInterval = 11735 // seconds
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute, .second]
formatter.unitsStyle = .abbreviated
let text1 = formatter.string(from: duration) // "3h 15m 35s"
// choose a longer unit style:
formatter.unitsStyle = .short
let text2 = formatter.string(from: duration) // "3 hr, 15 min, 35 sec"
// easy localization:
formatter.calendar?.locale = Locale(identifier: "da_DK")
let text3 = formatter.string(from: duration) // "3 t., 15 min. og 35 sek."
// approximate to whole minutes:
formatter.calendar?.locale = Locale(identifier: "en_US")
formatter.includesApproximationPhrase = true
formatter.allowedUnits = [.hour, .minute]
let text4 = formatter.string(from: duration) // "About 3 hr, 15 min" - (not rounding up)
// approximation AND localization (Apple has a bug to fix):
formatter.calendar?.locale = Locale(identifier: "da_DK")
formatter.includesApproximationPhrase = true
formatter.allowedUnits = [.hour, .minute]
let text5 = formatter.string(from: duration) // "About 3 t. og 15 min." - Ugh!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |