iOS計算時間差

jopen 9年前發布 | 40K 次閱讀 IOS iOS開發 移動開發

iOS 計算現在時間與所截取時間點的時間差

//計算上報時間差
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];//設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
        NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
        [formatter setTimeZone:timeZone];
        NSDate *datenow = [NSDate date];
        //設置一個字符串的時間
        NSMutableString *datestring = [NSMutableString stringWithFormat:@"%@",20141202052740];
        //注意 如果20141202052740必須是數字,如果是UNIX時間,不需要下面的插入字符串。
        [datestring insertString:@"-" atIndex:4];
        [datestring insertString:@"-" atIndex:7];
        [datestring insertString:@" " atIndex:10];
        [datestring insertString:@":" atIndex:13];
        [datestring insertString:@":" atIndex:16];
        NSLog(@"datestring==%@",datestring);
        NSDateFormatter * dm = [[NSDateFormatter alloc]init];
        //指定輸出的格式   這里格式必須是和上面定義字符串的格式相同,否則輸出空
        [dm setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
        NSDate * newdate = [dm dateFromString:datestring];
        long dd = (long)[datenow timeIntervalSince1970] - [newdate timeIntervalSince1970];
        NSString *timeString=@"";
        if (dd/3600<1)
        {
            timeString = [NSString stringWithFormat:@"%ld", dd/60];
            timeString=[NSString stringWithFormat:@"%@分鐘前", timeString];
        }
        if (dd/3600>1&&dd/86400<1)
        {
            timeString = [NSString stringWithFormat:@"%ld", dd/3600];
            timeString=[NSString stringWithFormat:@"%@小時前", timeString];
        }
        if (dd/86400>1)
        {
            timeString = [NSString stringWithFormat:@"%ld", dd/86400];
            timeString=[NSString stringWithFormat:@"%@天前", timeString];
        }
        NSLog(@"=====%@",timeString);

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!