gpt4 book ai didi

objective-c - 将 NSTimeInterval 转换为 "1w 3d 4h 15m 21s"格式的字符串,语言环境友好吗?

转载 作者:太空狗 更新时间:2023-10-30 03:31:50 26 4
gpt4 key购买 nike

我想将 NSTimeInterval 转换成类似这样的格式

1w 3d 4h 15m 21s

我怎样才能以语言环境友好的方式实现这一点?是否有用于执行此操作的 cocoa API,或者至少有一种方法可以在用户的​​语言环境中获取“w”、“d”、“h”、“m”、“s”?

最佳答案

NSDateComponentsFormatter 就是你想要的。它可能不会产生你正在寻找的东西,但我的印象是它旨在产生符合 ICU 标准约定的输出。例如,考虑一下:

NSDateComponentsFormatter* dcf = [[NSDateComponentsFormatter alloc] init];
dcf.unitsStyle = NSDateComponentsFormatterUnitsStyleAbbreviated;

NSCalendar* cal = [NSCalendar calendarWithIdentifier: NSCalendarIdentifierGregorian];
cal.locale = [NSLocale localeWithLocaleIdentifier: @"es_ES"]; // Spanish locale for Spain

dcf.calendar = cal;

NSLog(@"%@", [dcf stringFromTimeInterval: 1000000]);

...产生:

1 semana, 4 d, 13 h, 46 min, 40 s

因此,这与您的示例格式略有不同,但我的猜测是在 ICU unicode 标准文档的某个深处,指定如果一个间隔既有周又有秒,那么您将获得“semana”数周而不是“s”。不过,我不会折磨自己去寻找那份文件。

因此,如果您正在寻找 ICU 解决方案,就是它了。如果您正在寻找不同的东西,您可能会陷入困境。另请注意,有几种不同的“单元样式”,因此您也可以尝试其他样式并选择最适合您的情况。

关于objective-c - 将 NSTimeInterval 转换为 "1w 3d 4h 15m 21s"格式的字符串,语言环境友好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28219284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com