2009-10-02 17 views
5

私はこのような時間間隔をフォーマットしたクラスを探しています:Cocoaでどのように時間間隔を設定できますか?

 
1 hour 3 minutes 
2 hours 5 minutes 12 seconds 
5 days 2 hours 

は、内蔵のものや時間間隔の書式設定のこの種をサポートライブラリはありますか?

私はそれを自分でやって思ったが、あらゆる種類の問題があります。

  • ローカライズ
  • 非グレゴリオ暦で。
+0

NSDateFormatterを見てみましょう:https://developer.apple.com/library/mac/documentation/Cocoa/Reference /Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html –

答えて

1

古い質問ですが、これに遭遇した人は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]; 
} 
関連する問題