5
我正在尋找的是格式化時間間隔像這樣一類:如何在Cocoa中格式化時間間隔?
1 hour 3 minutes 2 hours 5 minutes 12 seconds 5 days 2 hours
有什麼內置或支持這種時間間隔格式的圖書館嗎?
我想過做我自己,但也有種種問題:
- 本地化
- 非公曆。
我正在尋找的是格式化時間間隔像這樣一類:如何在Cocoa中格式化時間間隔?
1 hour 3 minutes 2 hours 5 minutes 12 seconds 5 days 2 hours
有什麼內置或支持這種時間間隔格式的圖書館嗎?
我想過做我自己,但也有種種問題:
一個古老的問題,但任何人誰在這個失敗,檢查出NSDateComponentsFormatter
。
例如,這裏是從我DejalFoundationCategories開源項目NSDate
類方法:
+ (NSString *)dejal_relativeStringForTimeInterval:(NSTimeInterval)timeInterval style:(NSDateComponentsFormatterUnitsStyle)unitsStyle maximumUnits:(NSInteger)maximumUnits keepZero:(BOOL)keepZero defaultValue:(NSString *)defaultValue;
{
// If more than 10 years, assume distant past or future:
if (abs(timeInterval) > 60 * 60 * 24 * 365 * 10)
{
return defaultValue;
}
NSDateComponentsFormatter *formatter = [NSDateComponentsFormatter new];
formatter.unitsStyle = unitsStyle;
formatter.maximumUnitCount = maximumUnits;
if (keepZero)
{
formatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorDropLeading | NSDateComponentsFormatterZeroFormattingBehaviorDropMiddle;
}
else
{
formatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorDropAll;
}
return [formatter stringFromTimeInterval:timeInterval];
}
看看NSDateFormatter:https://developer.apple.com/library/mac/documentation/Cocoa/Reference /Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html – 2014-02-17 01:17:27