Xcodeを初めて使用しますが、次の問題があります。
ある日付から今までの時間を与えてくれる方法が欲しいです。 2年前の場合は「2年前」の文字列を返したいのですが、5分前の場合は「5分前」の文字列を返したいのです。
NSTimeIntervalとNSDateFormatterをすでに確認しましたが、それを機能させる方法が見つかりませんでした。
始めるためだけに...
次のような参照日を作成します。
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
dateComponents.year = 2012;
dateComponents.month = 1;
dateComponents.day = 1;
dateComponents.hour = 0;
dateComponents.minute = 0;
dateComponents.second = 0;
NSDate *referenceDate = [gregorian dateFromComponents: dateComponents];
現在の日付は次のように取得できます。
NSDate *now = [NSDate date];
時間間隔は秒単位なので...
NSTimeInterval interval = [now timeIntervalSinceDate:referenceDate];
NSLog (@"reference date was %.0f seconds ago", interval);
これからは自分で理解できると思います...
この答え あなたを助けるかもしれません。
ありがとうございます。コードをそれほど多く行かなくても、もっと簡単な方法があるのではないかと思っていました。
次のように参照日を作成できます。
NSDate *referenceDate = [NSDate date];
[[NSCalendar currentCalendar] rangeOfUnit:NSYearCalendarUnit
startDate:&referenceDate
interval:NULL
forDate:referenceDate];
またはこれを試してください: https://github.com/billgarrison/SORelativeDateTransformer