Xcodeを初めて使用しますが、次の問題があります。
ある日から今までの時間を与えてくれる方法が欲しいです。2年前なら「2年前」の文字列を返したいのですが、5分前なら「5分前」の文字列を返したいです。
NSTimeIntervalとNSDateFormatterをすでに確認しましたが、それを機能させる方法が見つかりませんでした。
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