NSDateComponentsFormatter单位分隔符

时间:2015-06-25 12:53:17

标签: ios objective-c nsdatecomponentsformatter

我想将时间转换为用户友好的字符串。以下代码解决了问题,除了一件事 - 我希望结果看起来像1 hr 30 min,但我得到了1 hr, 30 min。如何为NSDateComponentsFormatter指定单位分隔符?当然,我可以手动删除所有逗号,但它对我来说似乎不是最佳方式。

    NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init];
    formatter.allowedUnits = NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute;
    formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleShort;

    NSLog(@"%@", [formatter stringFromTimeInterval:90*60]);

2 个答案:

答案 0 :(得分:2)

如果您的应用程序的目标是OS X 10.12(或更高版本,我推测)或iOS 10.10(或更高版本),那么Apple会添加一个名为“NSDateComponentsFormatterUnitsStyleBrief”的新单位样式

formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleBrief

它将打印出“1小时30分钟”

https://developer.apple.com/reference/foundation/nsdatecomponentsformatterunitsstyle/nsdatecomponentsformatterunitsstylebrief?language=objc

答案 1 :(得分:0)

替换此行代码formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleShort;

formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleAbbreviated;

根据您的要求工作。我签入了我的xcode项目。