NSDateComponentsFormatter 单位分隔符

NSDateComponentsFormatter Units Separator

我想将以分钟为单位的时间转换为用户友好的字符串。下面的代码解决了这个问题,除了一件事 - 我希望结果看起来像 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]);

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

formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleAbbreviated;

这是根据您的要求工作的。我查看我的 xcode 项目。

如果您的应用程序的目标是 OS X 10.12(或更高版本,我想)或 iOS 10.10(或更高版本),那么 Apple 添加了一个名为 "NSDateComponentsFormatterUnitsStyleBrief"

formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleBrief

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

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