2013-07-24 68 views
-2

我有NSString值爲「22/04/2013 05:56」,根據要求我只是想計算這個時間和日期,並顯示一些基於條件的消息。如何將NSString轉換爲NSTimeInterval

第一個條件: 如果(字符串日期=當前日期和stringtime =當前時間)||(字符串日期=當前日期和時間串從當前時間< 1分鐘)

第二個條件:如果(String date =當前日期和stringtime>當前時間多少分鐘或小時)

第三個條件:要知道是字符串日期是昨天。

第四個條件:知道的是字符串,日期是前天。

我收到來自服務器此字符串。我如何能實現上面的東西與此「22/04/2013 05:56」字符串。

+4

'NSDateFormatter' ......所有的 – 2013-07-24 14:27:35

+0

首先請你告訴我,誰擁有downvote這個問題,爲什麼? – iMash

+2

這個論壇是不是降不投票仔細閱讀並理解它的任何問題。如果上面的問題有一些差異,你可以改正它,而不是投票,否則你可以通過解決問題來解決問題。 – iMash

回答

5

你需要花2步字符串:

  1. 字符串轉換爲NSDate
  2. 轉換日期到時間戳

像這樣:

- (void) dateConverter{ 
    NSString *string = @"22/04/2013 05:56"; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    // this is imporant - we set our input date format to match our input string 
    // if format doesn't match you'll get nil from your string, so be careful 
    [dateFormatter setDateFormat:@"dd/MM/yyyy hh:mm"]; 
    NSDate *date = [[NSDate alloc] init]; 
    // voila! 
    date = [dateFormatter dateFromString:string]; 
    NSLog(@"dateFromString = %@", date); 

    //date to timestamp 
    NSTimeInterval timeInterval = [date timeIntervalSince1970]; 
} 

然後實現像前一次下面的方法將幫助,雖然你卜我相信你可以修改它來幫你這不是完全!

- (NSString *) timeAgoFor : (NSDate *) date { 
    double ti = [date timeIntervalSinceDate:[NSDate date]]; 
    ti = ti * -1; 

    if (ti < 86400) {//86400 = seconds in one day 
     return[NSString stringWithFormat:@"Today"]; 
    } else if (ti < 86400 * 2) { 
     return[NSString stringWithFormat:@"Yesterday"]; 
    }else if (ti < 86400 * 7) { 
     int diff = round(ti/60/60/24); 
     return[NSString stringWithFormat:@"%d days ago", diff]; 
    }else { 
     int diff = round(ti/(86400 * 7)); 
     return[NSString stringWithFormat:@"%d wks ago", diff]; 
    } 
} 
+0

謝謝。你回答我很多問題以解決上述問題。你是天才。 – iMash

0

從使用dateformatter其轉換爲date.Then你要比較的日期,並獲得價值

NSString *[email protected]"22/04/2013 05:56"; 
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"dd/MM/YYYY hh:mm"]; 
NSDate *dateObj= [dateFormatter dateFromString:str]; 
NSLog(@"%@",dateObj);