我是新來的Xcode,我有以下問題:如何正確使用NSTimeInterval?
我想要一個方法,給我從一個給定的日期到現在爲止的時間。 如果是2年前,我想返回一個字符串「2年前」,但如果是5分鐘前,我希望它返回一個字符串「5分鐘前」。
我已經檢查過NSTimeInterval和NSDateFormatter,但我找不到一種方法使它工作。
我是新來的Xcode,我有以下問題:如何正確使用NSTimeInterval?
我想要一個方法,給我從一個給定的日期到現在爲止的時間。 如果是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);
我相信你可以從這裏弄清楚自己...
This answer可能會幫助你。
謝謝,我想知道是否有一個更簡單的方法來做到這一點 沒有這麼多的代碼行。
你可以創建基準日是這樣的:
NSDate *referenceDate = [NSDate date];
[[NSCalendar currentCalendar] rangeOfUnit:NSYearCalendarUnit
startDate:&referenceDate
interval:NULL
forDate:referenceDate];
,或者你試試這個:https://github.com/billgarrison/SORelativeDateTransformer
這個問題已經在這裏找到答案,也許一百倍。關於Google搜索有什麼困難? – jimpic
你可能必須自己寫。這是令人震驚的,我知道。 – trojanfoe