2012-11-09 4 views
7

私はXcodeを初めて利用していますが、次の問題があります。NSTimeIntervalの使い方は?

私は、指定された日付から現在までの経過時間を取得する方法が必要です。 2年前の場合は「2年前」の文字列を返したいが、5分前の場合は「5分前」の文字列を返すようにしたい。

私はすでにNSTimeIntervalとNSDateFormatterをチェックしましたが、動作させる方法が見つかりませんでした。

+1

この質問をここで回答されている多分100回。グーグルについて何が大変ですか? – jimpic

+2

自分で書く必要があるかもしれません。それは衝撃的です、私は知っています。 – trojanfoe

答えて

14

ちょうどあなたが始めるために...

あなたは、このような基準日を作成します。

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); 

ここからあなた自身でそれを理解することができると確信しています。

This answerあなたを助けてくれるかもしれません。

2

ありがとうございます。ありがとうございました。 コードがあまりないため、簡単な方法がありますか?

あなたは、このような基準日を作成することができます。

NSDate *referenceDate = [NSDate date]; 
[[NSCalendar currentCalendar] rangeOfUnit:NSYearCalendarUnit 
           startDate:&referenceDate 
           interval:NULL 
            forDate:referenceDate]; 

またはあなたはこれを試してみてください。https://github.com/billgarrison/SORelativeDateTransformer

関連する問題