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 –