iOS 時(shí)間處理(時(shí)間戳验夯,兩個(gè)時(shí)間戳之間的時(shí)間)

說明都在注釋里了,不解釋了摔刁。
NSDate+Covert.h

#import <Foundation/Foundation.h>

@interface NSDate (Covert)

//時(shí)間戳轉(zhuǎn)換為時(shí)間格式 yyyy-MM-dd
+ (NSString *)yyyyMMddStringWithSecond:(NSTimeInterval)time;

//獲取當(dāng)前時(shí)間
+(NSString*)getCurrentTimes;

//獲取當(dāng)前時(shí)間戳方法(以秒為單位)
+(NSString *)getNowTimeTimestamp;

//獲取當(dāng)前時(shí)間戳 (以毫秒為單位)
+(NSString *)getNowTimeTimestamp3;

//獲取30s后時(shí)間戳方法(以秒為單位),如果想要其它時(shí)間挥转,自己做下封裝
+(NSString *)get30sTimeTimestamp;

//一個(gè)時(shí)間戳距離當(dāng)前時(shí)間日分秒,常用于 10秒前共屈,10分鐘前扁位,10小時(shí)前。趁俊。域仇。。
+(NSString *)twoTimestampSub:(NSString *)oneTime nowTime:(NSString *)nowTime;

//時(shí)間戳轉(zhuǎn)化為時(shí)間
+(NSString *)timeStampChangeTime:(NSString *)timeStamp andFormatter:(NSString *)Formatter;

//秒數(shù)轉(zhuǎn)化時(shí)分寺擂,例如:50:18
+(NSString *)timeChangeMS:(NSInteger)time;
@end

NSDate+Covert.m

#import "NSDate+Covert.h"

@implementation NSDate (Covert)

//時(shí)間戳轉(zhuǎn)換為時(shí)間格式 yyyy-MM-dd
+ (NSString *)yyyyMMddStringWithSecond:(NSTimeInterval)time {
    
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy.MM.dd"];
    
    return [dateFormat stringFromDate:date];
}
//獲取當(dāng)前時(shí)間
+(NSString*)getCurrentTimes{
    
    return nil;
}

//獲取當(dāng)前時(shí)間戳有方法(以秒為單位)
+(NSString *)getNowTimeTimestamp{
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------設(shè)置你想要的格式,hh與HH的區(qū)別:分別表示12小時(shí)制,24小時(shí)制
    
    //設(shè)置時(shí)區(qū),這個(gè)對(duì)于時(shí)間的處理有時(shí)很重要
    
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
    
    [formatter setTimeZone:timeZone];
    
    NSDate *datenow = [NSDate date];//現(xiàn)在時(shí)間,你可以輸出來看下是什么格式
    
    NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]];
    
    return timeSp;
    
}

//獲取當(dāng)前時(shí)間戳 (以毫秒為單位)
+(NSString *)getNowTimeTimestamp3{
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss SSS"]; // ----------設(shè)置你想要的格式,hh與HH的區(qū)別:分別表示12小時(shí)制,24小時(shí)制
    
    //設(shè)置時(shí)區(qū),這個(gè)對(duì)于時(shí)間的處理有時(shí)很重要
    
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
    
    [formatter setTimeZone:timeZone];
    
    NSDate *datenow = [NSDate date];//現(xiàn)在時(shí)間,你可以輸出來看下是什么格式
    
    NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]*1000];
    
    return timeSp;
}

//獲取30s后時(shí)間戳方法(以秒為單位)
+(NSString *)get30sTimeTimestamp{
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------設(shè)置你想要的格式,hh與HH的區(qū)別:分別表示12小時(shí)制,24小時(shí)制
    
    //設(shè)置時(shí)區(qū),這個(gè)對(duì)于時(shí)間的處理有時(shí)很重要
    
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
    
    [formatter setTimeZone:timeZone];
    
    NSDate *datenow = [NSDate date];//現(xiàn)在時(shí)間,你可以輸出來看下是什么格式
    
    NSTimeInterval oneDay = 30;  // 一天一共有多少秒
    NSDate * appointDate = [datenow initWithTimeIntervalSinceNow: oneDay];
    
    NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[appointDate timeIntervalSince1970]];
    
    return timeSp;
    
}

//一個(gè)時(shí)間戳距離當(dāng)前時(shí)間日分秒
+(NSString *)twoTimestampSub:(NSString *)oneTime nowTime:(NSString *)nowTime{
    // 1.確定時(shí)間
//    NSString *time1 = @"2015-06-23 12:18:15";
//    NSString *time2 = @"2015-06-28 10:10:10";
    
    
    NSDate *date11 = [NSDate dateWithTimeIntervalSince1970:[oneTime doubleValue]];
    NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
    [formatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *time1 = [formatter1 stringFromDate: date11];
    
    
    NSDate *date22 = [NSDate dateWithTimeIntervalSince1970:[nowTime doubleValue]];
    NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
    [formatter2 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *time2 = [formatter2 stringFromDate: date22];
    
    
    
    // 2.將時(shí)間轉(zhuǎn)換為date
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSDate *date1 = [formatter dateFromString:time1];
    NSDate *date2 = [formatter dateFromString:time2];
    // 3.創(chuàng)建日歷
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSCalendarUnit type = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    // 4.利用日歷對(duì)象比較兩個(gè)時(shí)間的差值
    NSDateComponents *cmps = [calendar components:type fromDate:date1 toDate:date2 options:0];
    // 5.輸出結(jié)果
//    NSLog(@"兩個(gè)時(shí)間相差%ld年%ld月%ld日%ld小時(shí)%ld分鐘%ld秒", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);
    NSString * result = nil;
//    if (cmps.year && cmps.month && cmps.day && cmps.hour && cmps.minute && cmps.second) {
//        result = [NSString stringWithFormat:@"%ld年%ld月%ld日%ld小時(shí)%ld分鐘%ld秒",cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second];
//    }else if (cmps.month && cmps.day && cmps.hour && cmps.minute && cmps.second){
//         result = [NSString stringWithFormat:@"%ld月%ld日%ld小時(shí)%ld分鐘%ld秒", cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second];
//    }else if (cmps.day && cmps.hour && cmps.minute && cmps.second){
//        result = [NSString stringWithFormat:@"%ld日%ld小時(shí)%ld分鐘%ld秒", cmps.day, cmps.hour, cmps.minute, cmps.second];
//    }else if (cmps.hour && cmps.minute && cmps.second){
//        result = [NSString stringWithFormat:@"%ld小時(shí)%ld分鐘%ld秒", cmps.hour, cmps.minute, cmps.second];
//    }else if (cmps.minute && cmps.second){
//        result = [NSString stringWithFormat:@"%ld分鐘%ld秒", cmps.minute, cmps.second];
//    }else if (cmps.second){
//        result = [NSString stringWithFormat:@"%ld秒", cmps.second];
//    }else{
//        result = @"0秒";
//    }
    if (cmps.year ) {
        result = [NSString stringWithFormat:@"%ld年前",(long)cmps.year];
    }else if (cmps.month){
        result = [NSString stringWithFormat:@"%ld月前", (long)cmps.month];
    }else if (cmps.day){
        result = [NSString stringWithFormat:@"%ld天前", (long)cmps.day];
    }else if (cmps.hour){
        result = [NSString stringWithFormat:@"%ld小時(shí)前", (long)cmps.hour];
    }else if (cmps.minute){
        result = [NSString stringWithFormat:@"%ld分鐘前", (long)cmps.minute];
    }else if (cmps.second){
        result = [NSString stringWithFormat:@"%ld秒前", (long)cmps.second];
    }else{
        result = @"0秒";
    }
    return result;
}


//時(shí)間戳轉(zhuǎn)化為實(shí)踐
+(NSString *)timeStampChangeTime:(NSString *)timeStamp andFormatter:(NSString *)Formatter{
    
    // iOS 生成的時(shí)間戳是10位
    NSTimeInterval interval    =[timeStamp doubleValue];
    NSDate *date               = [NSDate dateWithTimeIntervalSince1970:interval];
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:Formatter];
    NSString *dateString       = [formatter stringFromDate: date];
    return dateString;
}

//秒數(shù)轉(zhuǎn)化時(shí)分
+(NSString *)timeChangeMS:(NSInteger)time{
    int seconds = time % 60;
    int minutes = time / 60;
    
    return [NSString stringWithFormat:@"%02d:%02d", minutes, seconds];
}

@end
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末暇务,一起剝皮案震驚了整個(gè)濱河市泼掠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌垦细,老刑警劉巖择镇,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異括改,居然都是意外死亡腻豌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門嘱能,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吝梅,“玉大人,你說我怎么就攤上這事惹骂∷招” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵对粪,是天一觀的道長(zhǎng)右冻。 經(jīng)常有香客問我,道長(zhǎng)著拭,這世上最難降的妖魔是什么纱扭? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮儡遮,結(jié)果婚禮上跪但,老公的妹妹穿的比我還像新娘。我一直安慰自己峦萎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布忆首。 她就那樣靜靜地躺著爱榔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪糙及。 梳的紋絲不亂的頭發(fā)上详幽,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音浸锨,去河邊找鬼唇聘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柱搜,可吹牛的內(nèi)容都是我干的迟郎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼聪蘸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼宪肖!你這毒婦竟也來了表制?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤控乾,失蹤者是張志新(化名)和其女友劉穎么介,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜕衡,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壤短,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了慨仿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片久脯。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖镶骗,靈堂內(nèi)的尸體忽然破棺而出桶现,到底是詐尸還是另有隱情,我是刑警寧澤鼎姊,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布骡和,位于F島的核電站,受9級(jí)特大地震影響相寇,放射性物質(zhì)發(fā)生泄漏慰于。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一唤衫、第九天 我趴在偏房一處隱蔽的房頂上張望婆赠。 院中可真熱鬧,春花似錦佳励、人聲如沸休里。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妙黍。三九已至辐啄,卻和暖如春砍的,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浮入。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工抓于, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留做粤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓捉撮,卻偏偏與公主長(zhǎng)得像怕品,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巾遭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • iOS開發(fā)中堵泽,經(jīng)常會(huì)遇到各種各樣的時(shí)間問題修己,8小時(shí)時(shí)差,時(shí)間戳迎罗,求時(shí)間間隔睬愤,農(nóng)歷等等。解決辦法網(wǎng)上比比皆是纹安,但大多...
    小李龍彪閱讀 6,309評(píng)論 1 6
  • 在iOS開發(fā)中尤辱,經(jīng)常會(huì)遇到各種各樣的時(shí)間問題,8小時(shí)時(shí)差厢岂,時(shí)間戳光督,求時(shí)間間隔,農(nóng)歷等等塔粒。解決辦法網(wǎng)上比比皆是结借,但大...
    真巧了_嘿閱讀 2,763評(píng)論 0 7
  • 在IOS中關(guān)于時(shí)間的問題比較常見,經(jīng)常會(huì)用來獲取當(dāng)前時(shí)間卒茬,或者根據(jù)當(dāng)前時(shí)間去獲取某個(gè)時(shí)間點(diǎn) 本文是關(guān)于時(shí)間與日期的...
    這位網(wǎng)友閱讀 10,006評(píng)論 0 9
  • UID卡(國(guó)外稱GEN1)所有區(qū)塊可被重復(fù)讀寫卡片ID可改且使用后門指令更改IDID可被重復(fù)修改響應(yīng)后門指令(意味...
    段煜華閱讀 23,266評(píng)論 0 0
  • 在具體的場(chǎng)景里,往往真實(shí)反應(yīng)各色人設(shè)郭赐。
    蛾子時(shí)述之閱讀 146評(píng)論 0 0